JavaでIPアドレスを取得する方法は?

Javaを使用して、IPアドレスを取得するためにInetAddressクラスを利用することができます。

以下はいくつかのサンプルコードです。

  1. ローカルIPアドレスを取得する:
import java.net.InetAddress;

public class Main {
    public static void main(String[] args) {
        try {
            InetAddress localhost = InetAddress.getLocalHost();
            System.out.println("本机IP地址: " + localhost.getHostAddress());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. 指定されたドメイン名のIPアドレスを取得する:
import java.net.InetAddress;

public class Main {
    public static void main(String[] args) {
        try {
            InetAddress address = InetAddress.getByName("www.google.com");
            System.out.println("www.google.com 的IP地址: " + address.getHostAddress());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

InetAddress.getLocalHost()メソッドは、ローカルホストのIPv6アドレスを返す可能性があり、IPv4アドレスではないことに注意してください。IPv4アドレスを取得する場合は、NetworkInterfaceクラスを使用してローカルネットワークインターフェースを取得し、そこからIPv4アドレスを取得できます。

例えば、

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

public class Main {
    public static void main(String[] args) {
        try {
            Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
            while (interfaces.hasMoreElements()) {
                NetworkInterface networkInterface = interfaces.nextElement();
                Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
                while (addresses.hasMoreElements()) {
                    InetAddress address = addresses.nextElement();
                    if (!address.isLoopbackAddress() && address.getHostAddress().indexOf(":") == -1) {
                        System.out.println("本机IPv4地址: " + address.getHostAddress());
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
bannerAds