标签:python获取mac地址 python获取网关地址 python获取ip地址
“人生苦短,我用Python”。Python的高效有一部分是跟它丰富的模块分不开的。Python有很多第三方模块可以帮助我们完成一些事情,减少开发时间。
Python pypi库中一个模块名字叫“netifaces”,使用C语言写的一个第三方模块。可以:
1.获取本机的所有网关
2.获取本机所有的接口Interface(网卡NIC)
3.获取本机指定接口的详细信息,包括IP地址、子网掩码、广播地址、MAC地址等
不过遗憾的是这个模块的功能太有限以及会带出一些令人困惑的信息,例如Windows系统上的子网掩码可能不正确等。
PS:要想获取公网地址,可以使用很多种API,例如:
# Use 3rd party web-sites to get your IP
# Please note that I do not recommend following curl/wget method due to security reasons. You have been warned:
curl ifconfig.me
curl icanhazip.com
curl ipecho.net/plain
curl ifconfig.co
curl http://ip.chinaz.com/getip.aspx
运行截图如下:
代码如下:
#!/usr/bin/python # encoding: utf-8 # -*- coding: utf8 -*- """ Created by PyCharm. File: LinuxBashShellScriptForOps:getNetworkStatus.py User: Guodong Create Date: 2016/11/2 Create Time: 16:20 show Windows or Linux network Nic status, such as MAC address, Gateway, IP address, etc # python getNetworkStatus.py Routing Gateway: 10.6.28.254 Routing NIC Name: eth0 Routing NIC MAC Address: 06:7f:12:00:00:15 Routing IP Address: 10.6.28.28 Routing IP Netmask: 255.255.255.0 """ import os import sys try: import netifaces except ImportError: try: command_to_execute = "pip install netifaces || easy_install netifaces" os.system(command_to_execute) except OSError: print "Can NOT install netifaces, Aborted!" sys.exit(1) import netifaces routingGateway = netifaces.gateways()[‘default‘][netifaces.AF_INET][0] routingNicName = netifaces.gateways()[‘default‘][netifaces.AF_INET][1] for interface in netifaces.interfaces(): if interface == routingNicName: # print netifaces.ifaddresses(interface) routingNicMacAddr = netifaces.ifaddresses(interface)[netifaces.AF_LINK][0][‘addr‘] try: routingIPAddr = netifaces.ifaddresses(interface)[netifaces.AF_INET][0][‘addr‘] # TODO(Guodong Ding) Note: On Windows, netmask maybe give a wrong result in ‘netifaces‘ module. routingIPNetmask = netifaces.ifaddresses(interface)[netifaces.AF_INET][0][‘netmask‘] except KeyError: pass display_format = ‘%-30s %-20s‘ print display_format % ("Routing Gateway:", routingGateway) print display_format % ("Routing NIC Name:", routingNicName) print display_format % ("Routing NIC MAC Address:", routingNicMacAddr) print display_format % ("Routing IP Address:", routingIPAddr) print display_format % ("Routing IP Netmask:", routingIPNetmask)
最后:不要重复制造轮子。重复制造轮子对自己而言,虽然制造的过程是学习巩固的过程,但重复制造轮子对别人没有好处,人生苦短,别重复制造轮子,除非你制造的足够好。
tag:python获取MAC地址,python获取网关地址,python获取IP地址
--end--
本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1868851
标签:python获取mac地址 python获取网关地址 python获取ip地址
原文地址:http://dgd2010.blog.51cto.com/1539422/1868851