跳至主要内容

博文

目前显示的是标签为“ip”的博文

go golang get IP address

func getIP() string { ifaces, err := net.Interfaces() if err != nil { f.Println(err) return "" } var strs []string for _, i := range ifaces { addrs, err := i.Addrs() if err != nil { f.Println(err) continue } for _, addr := range addrs { switch v := addr.(type) { case *net.IPNet: ip := v.IP strs = append(strs, ip.String()) case *net.IPAddr: // ip := v.IP // strs = append(strs, ip.String()) } } } for _, v := range strs { if strings.HasPrefix(v, "192.168.") { return v } } for _, v := range strs { if strings.HasPrefix(v, "10.") { return v } } for _, v := range strs { if strings.HasPrefix(v, "172.") { return v } } for _, v := range strs { if v != "127.0.0.1" && v != "::1" { return v } } return strs[0] }

android get ip address

public   static  String getHostIP() {          String hostIp =  null ;        try  {           Enumeration nis = NetworkInterface.getNetworkInterfaces();           InetAddress ia =  null ;            while  (nis.hasMoreElements()) {               NetworkInterface ni = (NetworkInterface) nis.nextElement();               Enumeration<InetAddress> ias = ni.getInetAddresses();                while  (ias.hasMoreElements()) { ...

IP地址的分类及应用

IP地址的分类及应用   IP地址可以分为A、B、C、D、E五类。通常,使用的IP都属于A、B、C三类,而D、E网则用于特殊用途,并且不使用和A、B、C类网相同的规律。所以,下面只谈谈A、B、C三类IP地址的使用。   在A、B、C三类IP地址中,使用了不同长度的网络部分和主机部分来表示地址,在如下表示中可以看到三类IP地址的网络部分数字决定了它默认的子网掩参院,所以清楚地知晓网络部分和主机部分的数字范围是十分有必要的。   对于专业的网络管理人员来说,需要知晓以下知识:   A类地址   适合于超大型的网络。我们知道,IP地址分为w.x.y.z四个组(即四个字节),其中的w是其网络部分,w值的可用范围是1~126,所以可以提供126个A类的网络数。而主机部分是x.y.z三个字节(1Byte=8bit),因此24位可以支持(2的24立方)-2=16777216-2=16777214台主机。   B类地址   适合于大、中型网络,其网络部分占用w.x 两个字节,由于w的可用范围是128-191,因此可以提供(191-128+1)x256=16384个网络数。而主机部分共占用y.z两个字节,因此每个网络可以支持(2的16立方)-2=65536-2=65534主机。   C类地址   适合办公及家庭小型号网络,其网络部分占用wxy三个字节,由于w的可用范围是192-223,所以它可以提供(223-192+1)x256x256=2067152个C类网络。而主机部分只占用z一个字节,所以每一个网络只能使用(2的8立方)-2=254台主机。   IP地址中的困惑   现在来解释一下上述计算中的一些可能会让读者们困惑的地方:   困惑1:127是一个保留的地址,它表示本机地址,主要用于测试网卡与驱动程序是否正常运行。   困惑2:为什么要减2?这是因为每一个网络的第1个是代表网络本身,最后一上IP地址代表广播地址,这两个地址不能直接被主机使用,所以要减去2能得到实际上可以使用的主机台数。以192.168.1.0这个C类网络为例,192.168.1.0就是网络本身,而主机部分侧为192.168.1.1---192.168.1.254,192.168.1.255是保留广播用途的。   困惑3:为什么要乘以256?这是因为W、X、Y、Z四组的每一组数量最大为...