Ric*_*son 7 python sockets ip ip-address
在我的Python脚本中,我需要检索运行脚本的机器的IP地址及其网络地址和网络字节.
至于IP地址,我在档案中找到了解决方案:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("www.google.com",80))
myAddress = (s.getsockname()[0])
s.close()
Run Code Online (Sandbox Code Playgroud)
但是我应该如何寻找网络地址和网络字节?我需要将这些信息放入格式的tcpdump过滤器中$NetworkAddress/$NetworkBytes
,如果这有帮助的话.
例:
128.1.2.0/20
Run Code Online (Sandbox Code Playgroud)
我inet
跑步的时候真的可以找到它ip addr
.在Python中获取此信息的任何简单方法?
Ant*_*ins 14
对于Linux试试
iface = "eth0"
socket.inet_ntoa(fcntl.ioctl(socket.socket(socket.AF_INET, socket.SOCK_DGRAM),
35099, struct.pack('256s', iface))[20:24])
Run Code Online (Sandbox Code Playgroud)
或 http://github.com/rlisagor/pynetlinux
(如此处所示:在Python中检索网络掩码)
对于Linux,Windows和MacOS,请考虑http://alastairs-place.net/projects/netifaces/
更新:
如果你需要cidr(比如'128.1.2.0/20'),你可以使用任何相关的库:http://pypi.python.org/pypi?%3Aaction = search&term = cidr&subsmit = search
例如netaddr
:
>> from netaddr import IPNetwork
>> print str(IPNetwork('1.2.3.4/255.255.255.0').cidr)
1.2.3.0/24
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12780 次 |
最近记录: |