直接上乾貨
from IPy import IP
IP(IP).make_net(Netmask).strNormal()
應用場景
本人需要根據已有的IP和netmask,來計算出ip的範圍,與原有的ip範圍進行比較,判斷是否有重疊
C語言實現:
struct in_addr oa_ip,oa_mask;
unsigned int oi_ip, oi_mask,oi_sip,oi_eip;
inet_pton(AF_INET,ip,&oa_ip);
inet_pton(AF_INET,mask,&oa_mask);
oi_mask = htonl(oa_mask);
oi_ip = htonl(oa_ip);
oi_sip = oi_ip & oi_mask;
oi_eip = oi_ip | (~oi_mask);
這樣得到的是地址範圍,然後範圍之間比較得出是否重疊,關鍵是python實現這段,不知爲何得到的範圍與c獲取的不同,鬱悶。。。。
使用的IPy後,直接拿到ip和mask,得出網段,兩個網段比較,相同則在範圍內。
恩,醬紫!