无线关闭时为什么ip地址不同?

时间:2013-07-23 14:46:26

标签: java networking

public class Main {

    public static void main(String[] args) throws IOException {
        InetAddress myIp = null;

        try {
            myIp = InetAddress.getLocalHost();
        } catch (UnknownHostException ex) {
            System.out.println("Exception cought.");
            System.exit(0);
        }

        System.out.println(myIp);
    }

}

我有这个简单的问题,为什么我的无线网络关闭时我的IP地址不同? 它仍然是同一台计算机,为什么它会改变? (这不是一个唯一的号码吗?)

5 个答案:

答案 0 :(得分:3)

计算机的IP地址取决于它所连接的网络(实际上,如果它有多个adapers,同一台机器可能有多个)。

因此,如果我将我的机器连接到我的某个网络,它可能具有地址192.168.10.7,而在我的另一个网络上,它可能是192.168.17.12。它也可以在不同的连接之间变化,但在实践中它们往往有点粘。 (这取决于DHCP服务器的配置方式。)

您的适配器可以配置固定地址,但如果您这样做,它必须是它所连接的网络为其保留的地址。否则它可能根本不起作用(“无主机路由”)或可能与使用网络的另一台机器冲突。

答案 1 :(得分:1)

.IP地址是特定本地网络中的网络适配器的地址

连接到不同的网络时会有所不同。

未连接到任何网络时,它将是链接本地地址或自动配置地址。

可能想要MAC地址,这是单个网络适配器的硬件地址,并且不太可能发生变化。

答案 2 :(得分:1)

提供的代码返回HOSTNAME / IP-Address(xx.xx.xx.xx)。

主机名是您的计算机名称ex:MY-PC,然后您将获得与之对应的IP。 当您连接到网络时,InetAddress.getLocalHost()会询问网络中的DHCP服务器“MY-PC的地址(您的计算机名称)是什么”,DHCP回复 - > 33.44.55.66

连接和断开连接时,请尝试以下CMD命令。

\>hostname
MY-PC
\>nslookup MY-PC
44.55.66.77

当您未连接到网络时,有两种可能性:

  1. 您没有获得主机名(默认为localhost)
  2. 您确实获得了主机名,但网络上没有DHCP服务器来返回IP地址, 所以你得到环回 - 127.0.0.1
  3. 如果您想在本地“呼叫”网络上的计算机,请使用环回http://www.pcmag.com/encyclopedia/term/57812/loopback-address

    希望这有帮助

答案 3 :(得分:0)

没有。你混淆了IP和MAC地址。 MAC地址是硬件的序列号(但可能在某些芯片组上以编程方式更改)。

IP地址由软件确定或由网络确定。它可以在网络之间或甚至时间上有所不同。

答案 4 :(得分:0)

IP地址(通常)接口特定,而不是特定于机器

如果您的机器只有一个接口,那么差异就没有实际意义,但是(例如)您有有线和无线以太网都很重要。

另请注意,如果您同时使用它们并尝试同时使用它们在同一子网上,那么事情可能会非常混乱!