import os
import subprocess
import socket

"""
python获取主机内网中所有MAC地址
"""

def get_local_net(): # 主机所在网段
# 获取主机名
hostname = socket.gethostname()
# 获取主机的局域网ip
localip = socket.gethostbyname(hostname)
localipnums = localip.split('.')
localipnums.pop()
localipnet = '.'.join(localipnums)
return localipnet

def getmacaddr():
devnull = open(os.devnull, 'wb')
res = subprocess.Popen("arp -a", shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=devnull)
sout, serr = res.communicate()
honstip = get_local_net()
mac_ip = dict()
if type(sout) == bytes:
# x = str(sout, encoding="gbk")
y = str(sout, encoding="gbk").split()
for i in range(len(y)):
if y[i].find(honstip) >= 0:
mac_ip[y[i]] = y[i + 1]
i += 1
print(y[i])
print(y[i + 1])

print(mac_ip)
return mac_ip

if __name__ == '__main__':
getmacaddr()

python获取主机内网中所有MAC地址的更多相关文章

  1. 使用ARP获取局域网内设备IP和MAC地址

    根据Arp列表数据,查询本地设备在线状态 使用 arp -a 获得所有内网地址,首先看Mod对象 public struct MacIpPair { public string HostName; p ...

  2. C#获取路由器外网IP,MAC地址

    C#实现的获取路由器MAC地址,路由器外网地址.对于要获取路由器MAC地址,一定需要知道路由器web管理系统的用户名和密码.至于获取路由器的外网IP地址,可以不需要知道路由器web管理系统的用户名和密 ...

  3. python获取主机IP,主机名

    获取主机内网,外网IP,主机名 代码如下: #!/usr/bin/env python #-*- coding:utf-8 -*- # author:Zeng Xianhe import socket ...

  4. Navicat通过云主机内网连接阿里云RDS

    背景 公司为了安全起见,RDS设置只允许阿里云主机的内网端可以访问.这就意味,如果要操作RDS就需要连接到云主机上之后通过mysql shell操作.操作起来很复杂麻烦,今天看同事用Navicat f ...

  5. 访问内网中的sql server数据库的简便方法

    前言: 有时候我们要访问局域网内的 sql server服务器,比如测试环境数据库在公司内网,回到家或在客户现场要连接内网中的数据库 第一步:假如可以连接局域网的数据库 192.168.150.129 ...

  6. 获取本地内网和外网IP地址

    public class IPUtil { /// <summary> /// 获取本地内网IP /// </summary> /// <returns></ ...

  7. 搭建SpringBoot服务器,在公司内网中使用

    搭建SpringBoot服务器,在公司内网中使用. 学习了:https://blog.csdn.net/z3881006/article/details/78902231 就是一个程序,托管于gith ...

  8. 内网中让其他人访问我电脑上的asp.net应用程序

    打开防火墙,高级配置,新建入站规则,选择“端口”,下一步,填写特定本地端口,然后都是点击下一步,命名规则,到此,内网中的其他人可以访问你的程序了

  9. python 获取时间范围内日期列表

    python 获取时间范围内日期列表 import datetime def dateRange(beginDate, endDate): dates = [] dt = datetime.datet ...

  10. 刚刚研究了下ipv6,尝试配置内网VPS的IPv6地址

    刚刚研究了下ipv6,尝试配置内网VPS的IPv6地址是3台设备,分别是客户机Windows系统.核心交换机.PPPoE拨号的路由器 第一步:在PPPoE拨号的路由器上面查看ppp0拨号的地址 ifc ...

随机推荐

  1. 一些excel随笔,瞎记一下

    1 使用sumif函数的时候,如果对于一列0求值返回的时候,显示一个英文中的破折号例 "-" ,是数字格式可能设置为了会计专用,改回数值就行,要逗号的话点其他格式里面的数值,找一下 ...

  2. ts 学习笔记

    var message:string = "Hello World" console.log(message) // ts 1基础类型 任意类型 any 声明为 any 的变量可以 ...

  3. 096_mulesoft with salesforce _01

    https://docs.mulesoft.com/mule-runtime/3.5/connect-with-salesforce-example https://www.youtube.com/w ...

  4. JavaScript 数字与字符串的加减乘除运算

    点击跳转 Tips: 除开字符串 + 数字的运算,会产生级联,其他情况下会将 String 转为 number 再进行数字运算. js 运算是从左到右的,所以一步一步来,不要跳步进行运算.

  5. lowcodeEngine 组件面板的拖拽功能

    设计器和渲染器处在不同的 Frame 渲染器以单独的 iframe 嵌入,xxx-simulator-renderer 通过和 host进行通信来和设计器打交道,比如点击渲染画布任意一个位置,需要能计 ...

  6. 1. ansible学习总结: 基础模块

    copy模块: #传输文件到目标机 ansible -i /kingdee/ansible/host all -m copy -a 'src=/tmp/aaaa.tgz dest=/tmp/aaaa. ...

  7. -bash: pip: command not found

    使用pip安装软件包时报错命令不存在 [root@test ~]# pip -V -bash: pip: command not found 机器上没有安装pip,需要手动进行安装 centos系统: ...

  8. prepare

    目标: 自动驾驶感知负责深度学习感知算法开发,包括目标识别.分割.检测.多目标追踪等有扎实的数理基础,有Linux.ROS.QNX等开发经验,熟悉C/C++编程,有良好的编程习惯 他人简历: skil ...

  9. 性能再升级,XMeter Cloud 专业版正式上线

    去年 8 月,EMQ 正式在全球市场推出了最简单.快速的 MQTT 负载和场景测试云服务--XMeter Cloud,用户无需部署即可进行 MQTT 测试,以更低的测试成本轻松打造具有竞争力的可靠物联 ...

  10. jenkin创建任务

    第一步新建项目 第二步创建任务名称