- 함수 is_ip()
1 Bash[ | ]
- 순수 bash
Bash
Copy
function is_ip() {
IFS='.' read -ra nums <<< "$1"
if [ ${#nums[@]} -ne 4 ]; then echo 0; return; fi
for num in "${nums[@]}"; do
if [ "$num" != "$((10#$num))" ]||[ $num -lt 0 ]||[ $num -gt 255 ]; then echo 0; return; fi
done
echo 1
}
# 1
is_ip 0.0.0.0
is_ip 0.0.0.1
is_ip 0.0.1.0
is_ip 255.255.255.255
is_ip 135.79.246.80
# 0
is_ip 0.0.0.256
is_ip 0.0.0.0.0
is_ip 0.0.0.00
is_ip 135.79.246.080
- 신버전 ipcalc 활용(v0.41)
Bash
Copy
echo $((`ipcalc 135.79.246.80 | grep INVALID | wc -l`^1))
# 1
echo $((`ipcalc 135.79.246.280 | grep INVALID | wc -l`^1))
# 0
- 구버전 ipcalc 활용(2008)
Bash
Copy
ipcalc -s -c 135.79.246.80; echo $(($?^1))
# 1
ipcalc -s -c 135.79.246.280; echo $(($?^1))
# 0
2 Go[ | ]

Go
Copy
package main
import (
"fmt"
"net"
)
func isIP(ip string) bool {
return net.ParseIP(ip) != nil
}
func main() {
// true
fmt.Println(isIP("10.40.210.253"))
fmt.Println(isIP("2001:0db8:85a3:0000:0000:8a2e:0370:7334"))
// false
fmt.Println(isIP("1000.40.210.253"))
fmt.Println(isIP("2001:0db8:85a3:0000:0000:8a2e:0370:7334:3445"))
}
Loading
3 PHP[ | ]

PHP
Copy
function is_ip($ip) { return ip2long($ip)?true:false; }
# true
var_dump( is_ip('1.1.1.1') );
var_dump( is_ip('135.79.246.80') );
# false
var_dump( is_ip('1.1.1.1.') );
var_dump( is_ip('1.1.1.256') );
var_dump( is_ip('135.79.256.080') );
Loading
4 Python[ | ]

Python
Copy
import ipaddress
def is_ip(ip):
try:
ipaddress.ip_address(ip)
except ValueError:
return False
return True
# True
print( is_ip('1.1.1.1') )
print( is_ip('192.168.0.1') )
print( is_ip('135.79.246.80') )
# False
print( is_ip('1.1.1.1.') )
print( is_ip('1.1.1.256') )
print( is_ip('192.168.0.256') )
print( is_ip('135.79.256.080') )
5 같이 보기[ | ]
편집자 221.151.7.78 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.