如何用python脚本获取ip,掩码,地址,网段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用python脚本获取ip,掩码,地址,网段相关的知识,希望对你有一定的参考价值。

参考技术A #!/usr/bin/python

import fcntl, socket, struct

def getHwAddr(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    info = fcntl.ioctl(s.fileno(), 0x8927,  struct.pack('256s', ifname[:15]))
    return ':'.join(['%02x' % ord(char) for char in info[18:24]])

print getHwAddr('eth0')

Python 输入IP地址及掩码告诉你该网段包含的全部地址(IPy模块练习)

技术分享
IPy模块原本使用时需要输入正确的网络位和掩码,我利用处理报错的机制实现了输入任意IP地址和掩码均可正确输出结果的小程序。

 

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # @Date    : 2017-09-04 21:57:15
 4 # @Author  : EnderZhou ([email protected])
 5 # @Link    : http://www.cnblogs.com/enderzhou/
 6 # @Version : $Id$
 7 
 8 from IPy import IP
 9 
10 def ipip(a):
11     try:
12         ips = IP(a)
13         print a
14         for ip in ips:
15             # print ip 
16             if ip == ips[0]:
17                 print str(ips[0]) + \\t网络位/The network address
18             elif ip == ips[1]:
19                 print str(ips[1]) + \\t网关(大多数情况下)/Gateway(in most cases)#大多数情况下这个英文不知道是否准确^_^!
20             elif ip == ips[-1]:
21                 print str(ips[-1]) + \\t广播位/Broadcast address
22             else :
23                 print ip
24     except Exception as e:
25         #利用报错机制,在报错时对最后一位数值进行减一操作,利用自我调用尝试到正确的网络位实现数据输出
26         b = (a.split(/)[0]).split(.)
27         a = b[0] + . + b[1] + . + b[2] + . + str(int(b[-1])-1) + / + a.split(/)[-1]
28         ipip(a)
29 
30 def main():
31     #执行文件时键盘输入所需要知道的ip地址及掩码
32     inputip = raw_input(please input IPaddress(example:192.168.1.1/24):\\n >>>)
33     ipip(inputip)
34     # ipip(‘10.10.10.1/30‘)#测试用例,为了避免重复输入注释掉上面两行,取消本行注释即可直接运行本程序测试运行情况
35 
36 if __name__ == __main__:
37     main()

 


以上是关于如何用python脚本获取ip,掩码,地址,网段的主要内容,如果未能解决你的问题,请参考以下文章

在MFC中如何获取电脑IP 主机名 网关 MAC 子网掩码等

delphi 获取IP,子网,网关,DNS

在 Python 中获取网络地址和网络掩码

ip地址,子网掩码,网关,网段

网络 IP地址网段子网掩码

如何判断两个ip地址是不是同一网段