[[Python и сетевые адреса]]

Python и сетевые адреса

Функция возвращает True, если адрес принадлежит заданной подсети.

#!/usr/bin/env python
def addressInNetwork(ip, net):
   ipaddr = int(''.join([ '%02x' % int(x) for x in ip.split('.') ]), 16)
   netstr, bits = net.split('/')
   netaddr = int(''.join([ '%02x' % int(x) for x in netstr.split('.') ]), 16)
   mask = (0xffffffff << (32 - int(bits))) & 0xffffffff
   return (ipaddr & mask) == (netaddr & mask)
 
print addressInNetwork('192.168.100.38', '192.168.100.32/29')

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
13 +11 = ?
 
practice/python/python_ip.txt · Последние изменения: 2012/06/03 21:52 (внешнее изменение)
Gentoo Linux Driven by DokuWiki