日常生活中,很多人都不知道自己的IP地址是多少,下面我来分享给大家一个获取本机的真实IP地址的方法,代码如下:
- import java.net.InetAddress;
- import java.net.NetworkInterface;
- import java.net.SocketException;
- import java.util.Enumeration;
- 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;
- }
- }
- }