您的位置:

Java获取服务器IP

一、什么是IP地址

IP地址,全称为Internet Protocol Address,即Internet协议地址。它是网络上分配给每个连接在互联网上的设备的唯一地址。IP地址由32位二进制数所组成,分为4个8位二进制数,用点号(.)隔开。

例如,192.168.1.1就是一个典型的IP地址。

二、如何获取本机IP地址

在Java中,获取本机IP地址有很多种方式。下面我们介绍两种常用的方式。

1. 使用InetAddress类

InetAddress类表示Internet地址,它提供了获取本机IP地址的常用方法getLocalHost()。

import java.net.InetAddress;

public class Main {

    public static void main(String[] args) {
        try {
            InetAddress address = InetAddress.getLocalHost();
            System.out.println("本机IP地址:" + address.getHostAddress());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

2. 使用NetworkInterface类

NetworkInterface类表示一个网络接口,它提供了获取网络接口信息的方法getNetworkInterfaces()。

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;

public class Main {

    public static void main(String[] args) {
        try {
            Enumeration interfaces = NetworkInterface.getNetworkInterfaces();
            while (interfaces.hasMoreElements()) {
                NetworkInterface networkInterface = interfaces.nextElement();
                Enumeration
    addresses = networkInterface.getInetAddresses();
                while (addresses.hasMoreElements()) {
                    InetAddress address = addresses.nextElement();
                    if (!address.isLinkLocalAddress()) {
                        System.out.println(networkInterface.getName() + " " + address.getHostAddress());
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

   
  

三、如何获取远程主机IP地址

在Java中,获取远程主机IP地址同样有很多种方式。下面我们介绍一种常用的方式:使用Socket类。

Socket类提供了客户端访问服务器端的功能,其中getInetAddress()方法可以获取远程主机IP地址。

import java.net.InetAddress;
import java.net.Socket;

public class Main {

    public static void main(String[] args) {
        try {
            Socket socket = new Socket("www.baidu.com", 80);
            InetAddress address = socket.getInetAddress();
            System.out.println("远程主机IP地址:" + address.getHostAddress());
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

四、总结

Java获取本机IP地址主要使用InetAddress类和NetworkInterface类,获取远程主机IP地址主要使用Socket类的getInetAddress()方法。