package main
import (
"fmt"
"net"
)
func isPrivateIP(ip string) bool {
parsed := net.ParseIP(ip)
return parsed.IsPrivate() || parsed.IsLoopback()
}
func main() {
// true
fmt.Println(isPrivateIP("10.10.10.10")) // private
fmt.Println(isPrivateIP("172.27.30.30")) // private
fmt.Println(isPrivateIP("192.168.0.1")) // private
fmt.Println(isPrivateIP("127.0.0.1")) // loopback
// false
fmt.Println(isPrivateIP("8.8.8.8"))
fmt.Println(isPrivateIP("172.0.0.1"))
fmt.Println(isPrivateIP("135.79.246.88"))
fmt.Println(isPrivateIP("192.192.192.192"))
}
<?php
function is_private_ip($ip) {
return false===filter_var($ip, FILTER_VALIDATE_IP,FILTER_FLAG_NO_PRIV_RANGE|FILTER_FLAG_NO_RES_RANGE);
}
// bool(true)
var_dump( is_private_ip('127.0.0.1') );
var_dump( is_private_ip('10.10.10.10') );
var_dump( is_private_ip('172.27.30.30') );
var_dump( is_private_ip('192.168.0.1') );
// bool(false)
var_dump( is_private_ip('8.8.8.8') );
var_dump( is_private_ip('172.0.0.1') );
var_dump( is_private_ip('135.79.246.88') );
var_dump( is_private_ip('192.192.192.192') );