■
[
java
][
net
] JavaでIPv4とIPv6の判別
文字列で与えられたIPアドレスがIPv4なのかIPv6なのかを判別したいとき、Javaではどう書けばいいのか。
InetAddress#getByName()の戻り値をinstanceofでチェックする方法しか思いつかなかった。次のテストは成功したのでメモ。
import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import static org.junit.Assert.*;
import org.junit.Test;
public class InetAddressTest {
@Test
public void v4test() throws Exception {
InetAddress address = InetAddress.getByName("192.0.2.10");
assertTrue(address instanceof Inet4Address);
@Test
public void v6test() throws Exception {
InetAddress address = InetAddress.getByName("2001:DB8::10");
assertTrue(address instanceof Inet6Address);