美文网首页
ip和mac地址相关

ip和mac地址相关

作者: butters001 | 来源:发表于2020-03-09 17:27 被阅读0次
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())
}

相关文章

  • ip和mac地址相关

  • 2019-02-21 IP地址和MAC地址

    一、IP地址和MAC地址 1、IP地址 (1)简介 IP地址(Internet Protocol Addres...

  • 2.IP地址详解

    一、IP地址和MAC地址 1、MAC地址 MAC(Media Access Control,介质访问控制)地址,或...

  • IP地址和子网划分学习笔记之《IP地址详解》

    一、IP地址和MAC地址 1、MAC地址 MAC(Media Access Control,介质访问控制)地址,或...

  • HTTP(二) -- IP地址和Mac地址

    本文参考《图解HTTP》,有了 IP 地址,为什么还要用 MAC 地址,IP地址和MAC地址的区别和联系是什么,静...

  • 2018-09-06:IP地址

    一、IP地址和MAC地址 1、MAC地址 MAC(Media Access Control,介质访问控制)地...

  • ip地址和mac地址

    IP地址: 标记逻辑上的地址。 ip地址在整个通信过程中都不会发生任何变化。 mac地址: 标记实际转发数据时的设...

  • IP地址和MAC地址

    IP地址,每台设备都是不一样的 MAC地址,每台设备不一样,但是都是固定的、 区别 对于网络上的某一设备,如一台计...

  • MAC地址和IP地址

    Question1:为什么有了MAC地址,还需要IP地址? 任何东西的出现都是有原因的,技术也是Mac地址是物理层...

  • IP地址和MAC地址

    MAC是唯一的,虽然000...01和00...02是两个mac,但是他可能是在地球的两端,不方便统一管理。而ip...

网友评论

      本文标题:ip和mac地址相关

      本文链接:https://www.haomeiwen.com/subject/bmnpdhtx.html