JavaでIPアドレスを取得する方法は?
Javaを使用して、IPアドレスを取得するためにInetAddressクラスを利用することができます。
以下はいくつかのサンプルコードです。
- ローカル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();
}
}
}
- 指定されたドメイン名の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();
}
}
}