在我的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()
但是我应该如何查找网络地址和网络字节呢?如果有帮助的话,我需要将这些信息放入格式为$NetworkAddress/$NetworkBytes
的tcpdump过滤器中。
示例:
128.1.2.0/20
当我运行ip addr
时,实际上可以在inet
下找到它。用Python获取这些信息有什么简单的方法吗?
您可以使用pyroute2模块检索任何与ip相关的信息:
或作为变体:
对于Linux尝试
或http://github.com/rlisagor/pynetlinux
(此处建议:Retrieving network mask in Python)
对于Linux、Windows和MacOS,请考虑http://alastairs-place.net/projects/netifaces/
更新:
如果您需要cidr(如“128.1.2.0/20”),可以使用任何相关的lib:http://pypi.python.org/pypi?%3Aaction=search&term=cidr&submit=search
例如
netaddr
:相关问题 更多 >
编程相关推荐