ip和mac地址相关

2020-03-09  本文已影响0人  butters001
import socket 
def get_host_ip(): 
    """
    返回内网ip
    """
    try: 
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
        s.connect(('8.8.8.8', 80)) 
        ip = s.getsockname()[0] 
    finally: 
        s.close() 
    return ip
    
hostname = socket.gethostname()  
    
import uuid                                                             
def get_mac_address():  
    """
    获取mac地址
    """
    mac=uuid.UUID(int = uuid.getnode()).hex[-12:]  
    return ":".join([mac[e:e+2] for e in range(0,11,2)]) 
   
   
# 获取公网地址
from urllib.request import urlopen 
from json import load 
my_ip = load(urlopen('http://jsonip.com'))['ip']                       

my_ip                                                                  
'xxx.xxx.xx.xx'

load(urlopen('http://jsonip.com'))                                     
Out[56]: 
{'ip': 'xxx.xxx.xx.xx',
 'geo-ip': 'https://getjsonip.com/#plus',
 'API Help': 'https://getjsonip.com/#docs'}

In [57]: urlopen('http://ip.42.pl/raw')                                         
Out[57]: <http.client.HTTPResponse at 0x109b65490>

In [58]: urlopen('http://ip.42.pl/raw').read()                                  
Out[58]: b'xxx.xxx.xx.xx'

In [59]: urlopen('http://ip.42.pl/raw').read()                                  
Out[59]: b'xxx.xxx.xx.xx'

In [60]: load(urlopen('https://api.ipify.org/?format=json'))                    
Out[60]: {'ip': 'xxx.xxx.xx.xx'}
package main

import (
    "fmt"
    "net"
)


func getMacAddrs() (macAddrs string) {
    netInterfaces, err := net.Interfaces()
    if err != nil {
        //fmt.Printf("fail to get net interfaces: %v", err)
        return macAddrs
    }

    for _, netInterface := range netInterfaces {
        macAddr := netInterface.HardwareAddr.String()
        if len(macAddr) != 0 {
            macAddrs = macAddr
            break
        }
    }
    return macAddrs
}


func getIPs() (ip string) {

    interfaceAddr, err := net.InterfaceAddrs()

    if err != nil {
        //fmt.Printf("fail to get net interface addrs: %v", err)
        return ip
    }

    for _, address := range interfaceAddr {
        ipNet, isValidIpNet := address.(*net.IPNet)
        if isValidIpNet && !ipNet.IP.IsLoopback() {
            if ipNet.IP.To4() != nil {
                ip = ipNet.IP.String()
                break
            }
        }
    }
    return ip
}


func main() {
    fmt.Println(getMacAddrs())
    fmt.Println(getIPs())
}
上一篇 下一篇

猜你喜欢

热点阅读