zoukankan      html  css  js  c++  java
  • 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/^[	]*//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('
    ')
        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()
  • 相关阅读:
    Mono 1.1.16
    Minimum Profit 3.3.18a
    PenguinTV 1.90
    Beagle 0.2.7
    Bonfire 0.4.0
    wxDownload Fast 0.4.5
    Network Configurator 0.1.8
    VMware Server 1.0
    MonoDevelop 0.11
    GTKsopcast 0.2.8
  • 原文地址:https://www.cnblogs.com/navysummer/p/10868960.html
Copyright © 2011-2022 走看看