[[ 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')

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
51 -4 =
 
practice/python/python_ip.txt · Последние изменения: 2018/07/26 16:24 (внешнее изменение)
Gentoo Linux Gentoo Linux Driven by DokuWiki