判断某个IP是否在允许的区间内时,直接比较字符串是错误的。
比如:
>>> '66.249.72.78' >= '127.0.0.1'
True
正确的做法是先将其转为整型,然后再比较,转换方法如下:
import socket import struct def ip2long(ip): """ Convert an IP string to long """ packedIP = socket.inet_aton(ip) return struct.unpack("!L", packedIP)[0]
此时:
>>> ip2long('66.249.72.78') >= ip2long('127.0.0.1')
False
参考:http://stackoverflow.com/questions/9590965/convert-an-ip-string-to-a-number-and-vice-versa
呵呵,谢谢
VaTG790i.最好的<a href=http://www.kyfei.com>网站推广软件</a>,
非常好
....................
;ui;普i;uighur;ui;ui;个
在unix网络编程中看到了关于TCP/IP的一些内容,我感觉还是写的不够。正在下载中,一定
下载地址呢