1.python写法
import socket
from binascii import hexlify
def convert_ip4_address():
for ip_addr in ['127.0.0.1', '192.168.0.1']:
packed_ip_addr = socket.inet_aton(ip_addr)
unpacked_ip_addr = socket.inet_ntoa(packed_ip_addr)
print "IP Address: %s => Packed: %s, Unpacked: %s" %(ip_addr, hexlify(packed_ip_addr), unpacked_ip_addr)
if __name__ == '__main__':
convert_ip4_address()
2.php写法
<?php
function convert_ip4_address(){
foreach(array('127.0.0.1', '192.168.0.1') as $ip_addr){
$packed_ip_addr = ip2long($ip_addr);
$unpacked_ip_addr = long2ip($packed_ip_addr);
printf("IP Address: %s => Packed: %s, Unpacked: %s\n", $ip_addr, bin2hex(pack('N', $packed_ip_addr)), $unpacked_ip_addr);
}
}
convert_ip4_address();
inet_aton()是一个改进的方法来将一个字符串IP地址转换为一个32位的网络序列IP地址。
inet_ntoa()是将一个IP转换成一个互联网标准点分格式的字符串。
但这两个函数php都没有对应的现成函数,我只好这么干了,可以看到做法慢慢复杂了,性能自然没法和python比~
转载请标注原文地址:http://blog.csdn.net/ddjohn/article/details/49930573