Python實現根據IP地址和子網掩碼算出網段的方法

直接上乾貨

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,得出網段,兩個網段比較,相同則在範圍內。

恩,醬紫!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章