本示例说明如何将方法调用byte返回的原始IP地址(数组)转换InetAddress.getAddress()为其字符串表示形式。
package org.nhooo.example.network;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class RawIPToString {
public static void main(String[] args) {
byte[] ip = new byte[0];
try {
InetAddress address = InetAddress.getLocalHost();
ip = address.getAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
String ipAddress = RawIPToString.getIpAddress(ip);
System.out.println("IP Address = " + ipAddress);
try {
InetAddress address = InetAddress.getByName("google.com");
ip = address.getAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ipAddress = RawIPToString.getIpAddress(ip);
System.out.println("IP Address = " + ipAddress);
}
/**
* Convert raw IP address to string.
*
* @param rawBytes raw IP address.
* @return a string representation of the raw ip address.
*/
private static String getIpAddress(byte[] rawBytes) {
int i = 4;
StringBuilder ipAddress = new StringBuilder();
for (byte raw : rawBytes) {
ipAddress.append(raw & 0xFF);
if (--i > 0) {
ipAddress.append(".");
}
}
return ipAddress.toString();
}
}此示例将打印如下内容:
IP Address = 182.0.135.67 IP Address = 209.85.132.104