Java 如何获取电脑IP ,并非服务器IP
时间: 2024-05-02 11:16:18 浏览: 42
Java 可以使用 InetAddress 类的 getLocalHost() 方法来获取当前电脑的 IP 地址。例如,以下代码可获取当前电脑的 IP 地址:
```
try {
InetAddress ip = InetAddress.getLocalHost();
System.out.println("IP 地址:" + ip.getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
}
```
但要注意,这个方法获取的是当前电脑的 IP 地址,而不是服务器的 IP 地址。如果需要获取服务器的 IP 地址,可以使用 Socket 类的 getInetAddress() 方法来获取与其连接的服务器的 IP 地址。
相关问题
java 如何跳过代理服务器获取使用电脑的IP,而非服务器IP
可以通过设置系统属性来实现跳过代理服务器获取使用电脑的IP,而非服务器IP。具体的方法如下:
1. 在Java应用程序中设置系统属性,代码如下:
```
System.setProperty("java.net.useSystemProxies", "true");
```
2. 获取本机IP地址。可以使用InetAddress类的getLocalHost()方法获取主机的IP地址,代码如下:
```
InetAddress addr = InetAddress.getLocalHost();
String ip = addr.getHostAddress().toString();
System.out.println("IP地址:" + ip);
```
3. 排除代理服务器IP。可以使用System类的getProperty()方法获取HTTP代理服务器地址,然后将本机的IP地址与HTTP代理服务器地址进行比较,如果本机IP地址与代理服务器IP地址不一致,则说明已经跳过代理服务器获取了本机IP地址。
```
// 获取HTTP代理服务器地址
String proxyHost = System.getProperty("http.proxyHost");
if(proxyHost == null || "".equals(proxyHost)){
System.out.println("此电脑不使用代理服务器,直接获取本机IP地址!");
} else {
// 获取本机IP地址
InetAddress addr = InetAddress.getLocalHost();
String ip = addr.getHostAddress().toString();
System.out.println("代理服务器IP地址:" + proxyHost);
System.out.println("本机IP地址:" + ip);
if(!proxyHost.equals(ip)){
System.out.println("已经跳过代理服务器获取了本机IP地址!");
} else {
System.out.println("本机IP地址与代理服务器IP地址一致,未能跳过代理服务器获取本机IP地址!");
}
}
```
java 如何获取使用电脑的IP,而非服务器IP
要获取使用电脑的IP,可以使用Java的InetAddress类,调用getLocalHost()方法获取本地主机,然后再调用getHostAddress()方法获取本地主机的IP地址,例如:
```
InetAddress localHost = InetAddress.getLocalHost();
String localIP = localHost.getHostAddress();
```
这样就可以获取使用电脑的IP地址了。
阅读全文