python分别获取虚拟网卡和真实网卡ip
#!/usr/bin/python
# -*- coding: utf-8 -*-
import commands
import socket
import fcntl
import struct CMD_VIR_NETCARD = "ls /sys/devices/virtual/net/"
CMD_ALL_NETCARD = "cat /proc/net/dev | awk '{i++; if(i>2){print $1}}' | sed 's/^[\t]*//g' | sed 's/[:]*$//g'" def get_ip_address(netcard_name):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915,
struct.pack('256s', netcard_name[:15])
)[20:24]) def get_netcard(CMD):
return_code, output = commands.getstatusoutput(CMD)
vnic_list = output.split('\n')
return set(vnic_list) def main():
vir_netcard_name = get_netcard(CMD_VIR_NETCARD)
all_netcard_name = get_netcard(CMD_ALL_NETCARD)
rel_netcard = [{item:get_ip_address(item)} for item in all_netcard_name if item not in vir_netcard_name]
vir_netcard = [{item:get_ip_address(item)} for item in all_netcard_name if item in vir_netcard_name]
print(rel_netcard)
print(vir_netcard) if __name__ == '__main__':
main()
python分别获取虚拟网卡和真实网卡ip的更多相关文章
- 使用nginx反向代理时,如何正确获取到用户的真实ip
在记录日志的的时候,获取用户的信息,比如用户的ip,浏览器等等信息是十分重要的. 但是在使用nginx反向代理的时候,可能经过转发无法获取到用户的真实的ip, 在此情况下需要配置nginx,让其在转发 ...
- C#获取本机IP且过滤非真实网卡(如虚拟机网卡)
参考了网上的文章,具体地址不记得了. 下面的方法可以过滤掉虚拟机的网卡等无效网卡,进而只留下真实的网卡. using System; using System.Collections.Generic; ...
- 基于WMI获取本机真实网卡物理地址和IP地址
using System; using System.Collections.Generic; using System.Management; using System.Runtime.Intero ...
- VMware Workstation下VMnet1等虚拟网卡与主机网卡之间的关系
VMware Workstation下VMnet1等虚拟网卡与主机网卡之间的关系 本文出自 "王春海的博客" http://wangchunhai.blog.51cto.com/2 ...
- 用C++和shell获取本机CPU、网卡IO、内存、磁盘等的基本信息
用C++和shell获取本机CPU.网卡.内存.磁盘等的基本信息: 由于对C++相关的函数没多少了解,但是觉得用shell反而相对简单一些: 一.shell脚本,用来辅助C++获取主机的资源使用信息 ...
- C#获取cpu序列号 硬盘ID 网卡硬地址以及操作注册表 .
转:http://blog.csdn.net/smartsmile2012/article/details/8682295 #region 获取cpu序列号 硬盘ID 网卡硬地址 /**/ /// & ...
- 获取客户端网卡MAC地址和IP地址实现JS代码
获取客户端网卡MAC地址和IP地址实现JS代码 作者: 字体:[增加 减小] 类型:转载 获取客户端的一些信息,如IP和MAC,以结合身份验证,相信很多人都会这样做吧,我们这里用Javascrip ...
- linux下一个网卡配置多个ip【虚拟ip】
Linux下配置网卡ip别名何谓ip别名?用windows的话说,就是为一个网卡配置多个ip.什么场合增加ip别名能派上用场?布网需要.多ip访问测试.特定软件对多ip的需要...and so on. ...
- 单网卡绑定多个ip, 多个网卡绑定成一块虚拟网卡
Linux网卡配置与绑定 Redhat Linux的网络配置,基本上是通过修改几个配置文件来实现的,虽然也可以用ifconfig来设置IP,用route来配置默认网关,用hostname来配置主机 ...
随机推荐
- 小D课堂 - 新版本微服务springcloud+Docker教程_3-03CAP原理、常见面试题
笔记 3.分布式系统CAP原理常见面试题和注册中心选择 简介:讲解CAP原则在面试中回答和注册中心选择 C A 满足的情况下,P不能满足的原因: 数据同步(C) ...
- RxJava2实战---第五章 变换操作符和过滤操作符
RxJava2实战---第五章 变换操作符和过滤操作符 RxJava的变换操作符主要包括以下几种: map():对序列的每一项都用一个函数来变换Observable发射的数据序列. flatMap() ...
- Jconsole、JvisualVM无法连接Tomcat服务
转载自:https://blog.csdn.net/qq_27790011/article/details/88799587 打开TomcatXw.exe找到java选项卡,添加以下参数 -Dcom. ...
- 能详细说一下action:=cafree这句吗?好多书都没说清楚!
关闭一个窗口有几种方式:最小化这个窗口,隐藏这个窗口,释放这个窗口,这句话就是说但这个窗口关闭的时候释放这个窗口,它应该是在form的onclose事件里面的 就是form.onclose() beg ...
- Python:Base3(函数,切片,迭代,列表生成式)
1.Python之调用函数: Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数 abs,它接收一个参数. 可以直接从Python的官方 ...
- Qt qss问题总结
1.在QWidget中设定了setObjectName,就是不起作用. 解决方法重写paintEvent. #ifndef BROWSEWIDGET_H #define BROWSEWIDGET_H ...
- Unity中的全局坐标系和局部坐标系
全局坐标系 描述游戏场景内所有物体位置和方向的基准,也称为世界坐标系.在Unity场景中创建的物体都是以全局坐标系中的坐标原点(0,0,0)来确定各自的位置的. 局部坐标系 每个物体都有其独立的坐 ...
- WEB框架初识
HTTP介绍 Hyper Text Transfer Protocol,超文本传输书协议,是万维网数据通信的基础,规定了请求和响应标准. HTTP工作原理 HTTP 请求以及响应的步骤 客户端连接到W ...
- [转帖]Docker常用命令总结
Docker常用命令总结 http://www.ha97.com/5546.html 发表于: Linux, 互联网, 虚拟化与云计算 | 作者: 博客教主 标签: docker,常用命令,总结 PS ...
- PostgreSQL的同步级别与MySQL的半同步after_sync比较
MySQL的半同步中通过binlog进行流复制,同步级别和PostgreSQL对比可以发现: PostgreSQL MySQL off local ...