http://www.dotcoo.com/golang-ip2long-long2ip
其实也没什么难度的.写完放到这里分享下.
AddrToUint32
func AddrToUint32(addr net.Addr) (uint32, error) { var ip net.IP switch ipaddr := addr.(type) { case *net.IPAddr: ip = ipaddr.IP case *net.IPNet: ip = ipaddr.IP case *net.TCPAddr: ip = ipaddr.IP case *net.UDPAddr: ip = ipaddr.IP case *net.UnixAddr: return 0, errors.New("UnixAddr type not support") default: return 0, errors.New("addr type not support") } return binary.BigEndian.Uint32(ip.To4()), nil }
ip2long
func Ip2long(ipstr string) (ip uint32) { r := `^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})` reg, err := regexp.Compile(r) if err != nil { return } ips := reg.FindStringSubmatch(ipstr) if ips == nil { return } ip1, _ := strconv.Atoi(ips[1]) ip2, _ := strconv.Atoi(ips[2]) ip3, _ := strconv.Atoi(ips[3]) ip4, _ := strconv.Atoi(ips[4]) if ip1>255 || ip2>255 || ip3>255 || ip4 > 255 { return } ip += uint32(ip1 * 0x1000000) ip += uint32(ip2 * 0x10000) ip += uint32(ip3 * 0x100) ip += uint32(ip4) return }
long2ip
func Long2ip(ip uint32) string { return fmt.Sprintf("%d.%d.%d.%d", ip>>24, ip<<8>>24, ip<<16>>24, ip<<24>>24) }
相关推荐
Java_IPv4转换_ip2long_long2IP,与php/java/javascript互相兼容
本文实例讲述了go语言版的ip2long函数。分享给大家供大家参考。具体分析如下: 这里介绍的go语言版的ip2long 函数不会对 IP 的合法性进行校验。 代码如下:// 注意: 该函数不会对 IP 的合法性进行校验 func Ip2Long...
博文链接:https://sofire.iteye.com/blog/110118
php提供了ip2long与long2ip方法对ip地址处理。 1、ip2long — 将一个IPV4的字符串互联网协议转换成数字格式 int ip2long ( string $ip_address ) 参数: ip_address 一个标准格式的地址。 返回值: 返回IP地址转换后...
IP转换,输入ip返回long型数据,输入long型数据,返回IP
PHP里有这么一个函数ip2long.比如复制代码 代码如下:<?phpecho ip2long(“10.2.1.3”);?>我们将得到167903491这是如何计算的,目前我知道有两个算法。其一复制代码 代码如下:<?phpfunction ip2int($ip){ /...
用java写的ip转成Long数据类型的UDF函数,在hive中查询IP对应的省、市必须用到的函数
该类可以将long型数据转换为Ip格式字符串,将ip格式字符串转换为long
【造成原因】:Because PHP’s integer type is signed, and many IP addresses will result in negative integers. ...即,printf( ‘%u’, ip2long( ‘IP地址’ ) ); 或者将其先转换为二进制然后在转换为十进制,b
linux点分十进制IP转换为long型 网络字节序与主机字节序互转
Golongpoll 是 golang HTTP 的 longpolling 库,可以使构建 web pub-sub 更加容易。基本用法:import "github.com/jcuga/golongpoll" // This launches a goroutine and creates channels for all the ...
Bin2Long函数-精品源代码 Bin2Long函数-精品源代码
public static String long2IP(long longIP) { StringBuilder sb = new StringBuilder(""); sb.Append(longIP >> 24); sb.Append("."); sb.Append((longIP & 0x00FFFFFF) >> 16); sb.Append("."); sb.Append...
可使用Ip2long.java中的ip2long(String ip)方法将您的IP转换成长整型。 用以下语句查出相应的记录 SELECT description FROM wn_ip_dic WHERE #ip# >= startip and #ip# LIMIT 1 --------------------...
public static String long2IP(long longIP) { StringBuilder sb = new StringBuilder(""); sb.Append(longIP >> 24); sb.Append("."); sb.Append((longIP & 0x00FFFFFF) >> 16); sb.Append("."); sb.Append...
NULL 博文链接:https://meohao.iteye.com/blog/749530