Java中有一个类叫 Application,可以用来获取本机 ip,也可以用来获取网络连接的信息,例如网络上有什么主机、需要访问本机的主机名等。但是这个类只能在本机上使用,如果要访问外部的主机,还需要使用其它的方法。 首先在主程序中
Java中有一个类叫 Application,可以用来获取本机 ip,也可以用来获取网络连接的信息,例如网络上有什么主机、需要访问本机的主机名等。但是这个类只能在本机上使用,如果要访问外部的主机,还需要使用其它的方法。 首先在主程序中写一个 java. util. Application ()方法,然后在子类中定义一个 Application类,如图1所示。 通过这个类可以获取到本机 ip地址。当然,这个类不是只能在本机上使用,其他地方也可以使用。 2.在子类中定义一个 Application方法(方法名根据需要自己取)。 4.用上述方法获得本机 ip地址(方法名和子类都是自定义的)。 5.调用 application方法来获取本机 ip地址。 6.如果在 Java程序中使用了 Debug模式,那么在这一步可以用 Debug模式来获取本机 ip地址。但是如果采用的是动态 IP,那么就要用动态 IP协议来获取本机 ip地址。
一、获取动态 IP
动态 IP是指路由器根据一定的规则,动态分配 IP地址,当主机从一个路由器转发数据时,路由器将这个 IP地址保存在自己的内存中,并在下一个周期根据该 IP地址计算出下一个周期的 IP地址。在动态 IP中,主机的 ip地址不固定。也就是说,在一次连接成功后,这个 ip地址是不会改变的。需要获取的是主机当前的动态 IP地址,即“本地动态 IP地址”。 Java中采用的动态 IP协议是 tcp/IP协议中的IPv4协议。IPv4协议与 Internet没有直接关系,其主要目标是在因特网上提供虚拟专用网服务。而 TCP/IP协议则是用于因特网上通信的三大基本协议之一。TCP/IP是建立在 TCP/IP之上的一整套规范,它规定了在因特网上进行通信时应遵循的一些规则(包括数据报格式、网络层传输格式、报头结构等)和接口规范。
二、网络协议
IP地址是一组数字,表示网络上的主机所处的位置。为了能让网络上所有的主机都能使用 IP地址,就需要一个协议。这个协议叫 IP协议,也叫网络协议。 在 TCP/IP协议中有三种不同的方式来表示网络中的主机地址。 第一种方式是用网络号来表示,第二种方式是用 IP地址来表示,第三种方式是用端口号来表示。因此,在 TCP/IP协议中,也是使用 IP地址和端口号来表示的。这里使用的是第三种方式。 要了解 IP地址和端口号之间的关系,可以看一下下面这个图: 根据图3所示,可以看到两个端口之间的连接情况。如果两个端口之间只有一条数据线,那么就是1;如果有两条数据线,那么就是2;如果有三条数据线,那么就是3。 对于三个端口之间的连接情况,我们可以用下面这个图来表示: 如图4所示,可以看出三个端口之间都有一条数据线。而这条数据线对应着相应的网络协议。
三、基本配置
首先打开 cmd命令窗口,在命令窗口中输入 cmd,回车。 2.在命令窗口中输入 ipconfig,回车。
四、本地配置
在 Java程序中用 Application方法获取本机 ip地址时,并不是直接调用本机的 application方法,而是使用一个 java. util. Application ()方法。如果有多个本地连接,那么可以使用多个 application方法。 2.在本地配置中,使用本机的 ip地址、端口、网段等信息。例如,在本机上的 ip地址为192.168.1.0,端口为80,那么需要将地址和端口分别设置为192.168.1.1和80。 3.使用 Debug模式来获取本机 ip地址时,只要设置了上述信息就可以了。 4.如果要获取的是动态 IP地址,那么需要将以上所有步骤都设置成自动。
五、安全配置
首先需要在 Java中对上述类库进行安全配置。方法是在类的 static成员方法中添加一个名为 test的安全参数,如图2所示。如果将 Test类加入到类库中,那么在程序运行时就会自动检测 test类是否为静态类。如果是静态类,就不能在程序运行时检测 test类,也就不能获取本机的 ip地址。 2.然后将 Test类添加到类库中,如图3所示。 4.将获取到的本机 ip地址和 test类绑定,如果需要访问外部的主机,那么需要使用动态 IP协议来访问,如果采用静态 IP协议,就可以获取到外部主机的 IP地址。 5.将获取到的本机 ip地址和 test类绑定,这样就可以使用 test类来访问外部主机了。
六、网络配置
进入网络配置界面,在“本地连接”窗口中,输入“连接到 Internet”并按回车键,即可启动 Internet。 2.进入 Internet,在“常规”选项卡中,选择“属性”。 3.点击“网络”,如图3所示,在弹出的对话框中输入“IP地址”并按回车键,然后再点击“属性”。如图5所示。 5.此时进入网络设置界面,在 IP地址前面添加子网掩码和网关即可完成网络配置。 6.到此完成了对本机 ip地址的获取。
七、运行环境
在上述配置环境变量的基础上,如果使用了网络适配器(Network Adapter),那么还需要配置网络适配器的相关变量。
以下是几种获取本机IP地址的Java代码:
使用InetAddress类
```java
import java.net.InetAddress;
import java.net.UnknownHostException;
public class GetLocalIP {
public static void main(String[] args) {
try {
InetAddress localHost = InetAddress.getLocalHost();
System.out.println("本机IP地址:" + localHost.getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
```
2. 使用NetworkInterface类
```java
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
public class GetLocalIP {
public static void main(String[] args) {
try {
Enumeration
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
Enumeration
while (inetAddresses.hasMoreElements()) {
InetAddress inetAddress = inetAddresses.nextElement();
if (!inetAddress.isLinkLocalAddress() && !inetAddress.isLoopbackAddress() && inetAddress.isSiteLocalAddress()) {
System.out.println("本机IP地址:" + inetAddress.getHostAddress());
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
}
}
```
3. 使用System类
```java
public class GetLocalIP {
public static void main(String[] args) {
String localIP = null;
try {
localIP = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
System.out.println("本机IP地址:" + localIP);
}
}
```
来源地址:https://blog.csdn.net/qq_42751978/article/details/130167416
--结束END--
本文标题: java获取本机ip的方法
本文链接: https://www.lsjlt.com/news/393660.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-01
2024-04-03
2024-04-03
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0