JAVA怎么获取IP地址

Python015

JAVA怎么获取IP地址,第1张

这个是获取不到的,因为有代理、端口映射等等转发情况的存在。为什么不保存相对路径/域名/或者在服务器上某个配置文件中配置域名/数据库中一个表/数据库中某个字段保存当前服务器的ip地址呢?

java获取外网ip地址方法:

public class Main {

public static void main(String[] args) throws SocketException {

System.out.println(Main.getRealIp())

}

public static String getRealIp() throws SocketException {

String localip = null// 本地IP,如果没有配置外网IP则返回它

String netip = null// 外网IP

Enumeration<NetworkInterface>netInterfaces =

NetworkInterface.getNetworkInterfaces()

InetAddress ip = null

boolean finded = false// 是否找到外网IP

while (netInterfaces.hasMoreElements() &&!finded) {

NetworkInterface ni = netInterfaces.nextElement()

Enumeration<InetAddress>address = ni.getInetAddresses()

while (address.hasMoreElements()) {

ip = address.nextElement()

if (!ip.isSiteLocalAddress()

&&!ip.isLoopbackAddress()

&&ip.getHostAddress().indexOf(":") == -1) {// 外网IP

netip = ip.getHostAddress()

finded = true

break

} else if (ip.isSiteLocalAddress()

&&!ip.isLoopbackAddress()

&&ip.getHostAddress().indexOf(":") == -1) {// 内网IP

localip = ip.getHostAddress()

}

}

}

if (netip != null &&!"".equals(netip)) {

return netip

} else {

return localip

}

}

}

import java.net.*

public class Test6 {

public static void main(String[] args) {

// TODO Auto-generated method stub

InetAddress ia=null

try {

ia=ia.getLocalHost()

String localname=ia.getHostName()

String localip=ia.getHostAddress()

System.out.println("本机名称是:"+ localname)

System.out.println("本机的ip是 :"+localip)

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}