gpt4 book ai didi

Java:在我的家庭网络中获取我自己的IP地址

转载 作者:行者123 更新时间:2023-12-01 17:26:18 24 4
gpt4 key购买 nike

我在网上找到了两个例子来获取路由器分配给我的电脑的IP地址。这是代码:

import java.net.InetAddress;
import java.net.UnknownHostException;

public class tryNet {

public static void displayStuff(String whichHost, InetAddress inetAddr) {
System.out.println("---------------------");
System.out.println("host: " + whichHost);
System.out.println("Canonical host name: " + inetAddr.getCanonicalHostName());
System.out.println("Host Name: " + inetAddr.getHostName());
System.out.println("Host Address: " + inetAddr.getHostAddress());
System.out.println("---------------------");
}


public static void main(String argv[]) {
try {
InetAddress inetAddr = InetAddress.getLocalHost();
displayStuff("localhost", inetAddr);
}

catch (UnknownHostException e) {
e.printStackTrace();
}
}

}

我在初始化后读到了 InetAddress inetAddr = InetAddress.getLocalHost();我可以使用该方法 inetAddr.getHostAddress()获取我的IP地址,即我的路由器给定的IP地址(例如在ubuntu中的终端中写入ifconfig,或在windows中的ipconfig)相反,它返回我的环回地址...(127.0.0.1)为什么?

最佳答案

您的 PC 有多个接口(interface)(至少两个)和多个 IP 地址(当然,如果它已插入网络)。通常,localhost 将解析为 127.0.0.1(在环回接口(interface)上),并且您使用的各种方法将返回该值。

下面将向您显示计算机上的所有接口(interface)以及分配给它们的 IP 地址:

public static void main(String[] args) throws InterruptedException, IOException
{
Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
while (e.hasMoreElements())
{
NetworkInterface n = e.nextElement();
System.out.println(n.getName());
Enumeration<InetAddress> ee = n.getInetAddresses();
while (ee.hasMoreElements())
{
InetAddress i = ee.nextElement();
System.out.println(i.getHostAddress());
}
}
}

关于Java:在我的家庭网络中获取我自己的IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14790440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com