繁体   English   中英

Python网络接口扫描

[英]Python Network Interface Scan

我需要创建一个Python脚本来查询网络接口,并向我返回主机名,IP地址和mac地址。

#!/usr/bin/env python3
import netifaces

x = netifaces.interfaces()
i = x[0]

for i in x:
    if i != 'lo':

        print(i)
        face = netifaces.ifaddresses(i)

        print(face)
        i += i
    else:
        continue

这是我正在使用的程序的一个版本。 这似乎抢走了我需要的所有数据,但我无法使它打印干净或正确! 我正在寻找类似的内容:“ Nic:wlan0,ipaddr:10.0.0.1,mac:4651168584541”

我是编程的新手,而对python的新手,所以请您给予任何帮助!

请检查链接:

  1. @camflan在获取MAC地址中的回复

  2. 如何从接口获取物理接口IP地址

     import netifaces x = netifaces.interfaces() for i in x: if i != 'lo': print(i) print("mac:" + netifaces.ifaddresses(i)[netifaces.AF_LINK][0]['addr'] + " ipaddr:" + netifaces.ifaddresses(i)[netifaces.AF_INET][0]['addr']) i += i else: continue 

因此,起初这有点棘手,但是这种格式应该可以让您从netifaces的结果中获取数据。

import netifaces

x = netifaces.interfaces()


for i in x:
    if i != 'lo':
    print('\nInterface: ' + i)
    mac = netifaces.ifaddresses(i)[netifaces.AF_LINK][0]['addr']
    print('Mac addr: ' + mac)

    try:
        ip = netifaces.ifaddresses(i)[netifaces.AF_INET][0]['addr']

        print('IP addr: {0} '.format(ip))
    except KeyError:
        print('NO IP')
        continue

输出将如下所示:

Interface: eth0
Mac add: eo:ie:9:38:ri
No IP

Interface: wlan0
Mac addr: 34:po:iu:66
IP addr: 10.0.0.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM