public class NetworkUtil
extends java.lang.Object
| 限定符和类型 | 类和说明 |
|---|---|
static class |
NetworkUtil.ConnectStatus
连接测试返回状态
|
static class |
NetworkUtil.Filter |
static class |
NetworkUtil.Radix |
| 限定符和类型 | 字段和说明 |
|---|---|
static java.lang.String |
DEFAULT_HOST |
static com.google.common.base.Predicate<java.net.InetAddress> |
FILTER_IPV4 |
static com.google.common.base.Predicate<java.net.InetAddress> |
FILTER_NOT_LINK_LOCAL |
| 构造器和说明 |
|---|
NetworkUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static java.util.Set<java.net.InetAddress> |
addressesOfNoVirtualNICs(com.google.common.base.Predicate<java.net.InetAddress>... filters)
根据过滤器(filter)指定的规则返回符合要求的所有物理(非虚拟)网卡的IP地址
|
static java.util.Set<java.net.InetAddress> |
addressesOfPhysicalNICs(com.google.common.base.Predicate<java.net.InetAddress>... filters)
根据过滤器(filter)指定的规则返回符合要求的所有物理网卡的IP地址
|
static java.lang.String |
convertHost(java.lang.String host)
如果
host为localhost转换为"localhost" |
static java.lang.String |
format(byte[] source,
java.lang.String separator,
NetworkUtil.Radix radix)
将
byte[] 转换为radix指定格式的字符串 |
static java.lang.String |
formatIp(byte[] source)
以IP地址格式(点分位)格式化
source指定的字节数组 |
static java.lang.String |
formatIp(java.net.InetAddress inetAddress)
将IP地址对象格式化
source指定的字符串IPV4地址格式为'.' |
static java.lang.String |
formatIpv6(byte[] source)
以IPV6地址格式(点分位)格式化
source指定的字节数组 |
static java.lang.String |
formatMac(byte[] source,
java.lang.String separator)
MAC地址格式(16进制)格式化
source指定的字节数组 |
static byte[] |
getCurrentMac(com.google.common.net.HostAndPort hostAndPort)
通过尝试建立socket连接(tcp)的方式获取访问指定host的当前网卡物理地址
|
static byte[] |
getCurrentMac(java.lang.String... hostAndPorts)
通过尝试建立socket连接(tcp)的方式获取访问指定host的当前网卡物理地址
通过(并发)对一组主机进行socket连接测试获取当前网卡的物理地址,任何一个测试通过即返回 |
static byte[] |
getCurrentMac(java.lang.String hostPortString)
通过尝试建立socket连接(tcp)的方式获取访问指定host的当前网卡物理地址
|
static byte[] |
getCurrentMac(java.lang.String host,
int port)
通过尝试建立socket连接(tcp)的方式获取访问指定host的当前网卡物理地址
|
static java.net.InetAddress |
getLocalIp(com.google.common.net.HostAndPort hostAndPort)
通过尝试建立socket连接(tcp)的方式获取访问指定host的网卡IP地址
|
static java.net.InetAddress |
getLocalIp(java.lang.String... hostAndPorts)
通过尝试建立socket连接(tcp)的方式获取访问指定host的网卡IP地址
通过(并发)对一组主机进行socket连接测试获取当前网卡的物理地址,任何一个测试通过即返回 |
static java.net.InetAddress |
getLocalIp(java.lang.String hostPortString)
通过尝试建立socket连接(tcp)的方式获取访问指定host的网卡IP地址
|
static java.net.InetAddress |
getLocalIp(java.lang.String host,
int port)
通过尝试建立socket连接(tcp)的方式获取访问指定host的网卡IP地址
|
static byte[] |
getMacAddress(java.net.InetAddress address)
返回指定
address绑定的网卡的物理地址(MAC) |
static java.lang.String |
getMacAddress(java.net.InetAddress address,
java.lang.String separator)
|
static java.lang.String |
getMacAddress(java.net.NetworkInterface nic,
java.lang.String separator) |
static java.util.Set<java.net.NetworkInterface> |
getNICs(com.google.common.base.Predicate<java.net.NetworkInterface>... filters)
根据过滤器
filters指定的条件(AND)返回网卡设备对象 |
static java.util.Set<java.net.NetworkInterface> |
getNoVirtualNICs()
返回所有物理(非虚拟)网卡
|
static java.util.Set<java.net.NetworkInterface> |
getPhysicalNICs()
返回所有物理网卡
|
static java.util.Set<java.net.InetAddress> |
ipv4AddressesOfNoVirtualNICs()
返回所有物理(非虚拟)网卡绑定的IP(ipv4)地址
|
static java.util.Set<java.net.InetAddress> |
ipv4AddressesOfPhysicalNICs()
返回所有物理网卡绑定的IP(ipv4)地址
|
static boolean |
isBroadcast(java.net.InetAddress addr)
判断一个地址是否为广播地址(255.255.255.255)
|
static boolean |
isLocalhost(java.net.InetAddress address)
判断
address是否为本机地址 |
static boolean |
isLocalhost(java.lang.String host)
判断
address是否为本机地址 |
static boolean |
isLoopbackAddress(java.lang.String host)
判断
host是否为localhost |
static boolean |
isReachable(java.lang.String address,
int port,
int timeoutMillis) |
static boolean |
selfBind(java.net.InetAddress address)
遍历所有物理(非虚拟)网卡上绑定的地址,判断
address是否为本机网卡绑定的地址 |
static boolean |
selfBind(java.lang.String host)
see also
selfBind(InetAddress) |
static java.lang.String |
sendHttpRequest(java.net.URL url,
java.lang.String requestType)
向指定的url发送http请求
|
static void |
sendMulticast(java.net.InetAddress group,
int port,
byte[] message,
java.lang.Integer ttl)
向指定的组播或广播地址和端口发送组播数据
|
static void |
sendMulticast(java.net.InetAddress group,
int port,
byte[] message,
java.lang.Integer ttl,
java.net.NetworkInterface nic)
向指定的组播或广播地址和端口发送组播数据
|
static void |
sendMulticast(java.lang.String hostPort,
byte[] message)
向指定的组播或广播地址和端口发送组播数据
|
static void |
sendMulticast(java.lang.String bindaddr,
int port,
byte[] message)
向指定的组播或广播地址和端口发送组播数据
|
static NetworkUtil.ConnectStatus |
testHttpConnect(java.lang.String host,
int port,
com.google.common.base.Predicate<java.lang.String> responseValidator)
测试HTTP连接是否可连接
|
static NetworkUtil.ConnectStatus |
testHttpConnect(java.lang.String url,
com.google.common.base.Predicate<java.lang.String> responseValidator)
测试http连接是否可连接
|
static NetworkUtil.ConnectStatus |
testHttpConnect(java.net.URL url,
com.google.common.base.Predicate<java.lang.String> responseValidator)
测试http连接是否可连接
连接失败返回 NetworkUtil.ConnectStatus.FAIL,
建立连接后用
responseValidator验证响应数据,responseValidator返回true则连接有效返回NetworkUtil.ConnectStatus.CONNECTABLE,
responseValidator返回false则连接无效返回NetworkUtil.ConnectStatus.INVALID_RESPONE , |
static boolean |
testHttpConnectChecked(java.lang.String host,
int port,
com.google.common.base.Predicate<java.lang.String> responseValidator)
测试HTTP连接是否可连接
|
static boolean |
testHttpConnectChecked(java.lang.String url,
com.google.common.base.Predicate<java.lang.String> responseValidator)
测试http连接是否可连接
|
static boolean |
testHttpConnectChecked(java.net.URL url,
com.google.common.base.Predicate<java.lang.String> responseValidator)
测试http连接是否可连接
|
static byte[] |
validateMac(byte[] mac)
验证MAC地址有效性
|
public static final java.lang.String DEFAULT_HOST
public static final com.google.common.base.Predicate<java.net.InetAddress> FILTER_IPV4
public static final com.google.common.base.Predicate<java.net.InetAddress> FILTER_NOT_LINK_LOCAL
@SafeVarargs public static java.util.Set<java.net.NetworkInterface> getNICs(com.google.common.base.Predicate<java.net.NetworkInterface>... filters)
filters指定的条件(AND)返回网卡设备对象filters - public static java.util.Set<java.net.NetworkInterface> getPhysicalNICs()
public static java.util.Set<java.net.NetworkInterface> getNoVirtualNICs()
public static final java.lang.String format(byte[] source,
java.lang.String separator,
NetworkUtil.Radix radix)
byte[] 转换为radix指定格式的字符串source - separator - 分隔符radix - 进制基数source为null时返回空字符串public static final java.lang.String formatMac(byte[] source,
java.lang.String separator)
source指定的字节数组public static final java.lang.String formatIp(byte[] source)
source指定的字节数组public static final java.lang.String formatIpv6(byte[] source)
source指定的字节数组public static final java.lang.String formatIp(java.net.InetAddress inetAddress)
source指定的字符串inetAddress - public static byte[] getMacAddress(java.net.InetAddress address)
address绑定的网卡的物理地址(MAC)address - address没有绑定在任何网卡上返回nullNetworkInterface.getByInetAddress(InetAddress),
NetworkInterface.getHardwareAddress()public static java.lang.String getMacAddress(java.net.NetworkInterface nic,
java.lang.String separator)
nic - 网卡对象separator - 格式化分隔符public static java.lang.String getMacAddress(java.net.InetAddress address,
java.lang.String separator)
address - separator - 格式化分隔符public static final boolean isLoopbackAddress(java.lang.String host)
host是否为localhostpublic static final boolean isLocalhost(java.net.InetAddress address)
address是否为本机地址public static final boolean isLocalhost(java.lang.String host)
address是否为本机地址public static final java.lang.String convertHost(java.lang.String host)
host为localhost转换为"localhost"public static boolean selfBind(java.net.InetAddress address)
address是否为本机网卡绑定的地址public static boolean selfBind(java.lang.String host)
selfBind(InetAddress)public static java.net.InetAddress getLocalIp(java.lang.String host,
int port)
throws java.io.IOException
host - 主机名port - 端口号java.io.IOException - 目标连接失败public static java.net.InetAddress getLocalIp(com.google.common.net.HostAndPort hostAndPort)
throws java.io.IOException,
java.lang.IllegalArgumentException
hostAndPort - 用于测试连接的主机,不可为空java.io.IOException - 目标连接失败java.lang.IllegalArgumentExceptionpublic static java.net.InetAddress getLocalIp(java.lang.String hostPortString)
throws java.io.IOException,
java.lang.IllegalArgumentException
hostPortString - 用于测试连接的主机(host:port format),不可为空java.io.IOException - 目标连接失败java.lang.IllegalArgumentException - hostPortString格式错误,导致无法从hostPortString解析出主机名和端口号public static java.net.InetAddress getLocalIp(java.lang.String... hostAndPorts)
throws java.io.IOException
hostAndPorts - 用于测试连接的主机(host:port format)列表,不可为空java.io.IOException - 无法获取本机MACjava.lang.IllegalArgumentException - hostAndPorts格式错误,导致无法从hostAndPorts解析出主机名和端口号public static byte[] getCurrentMac(java.lang.String host,
int port)
throws java.io.IOException
host - 主机名port - 端口号java.io.IOExceptionpublic static byte[] getCurrentMac(com.google.common.net.HostAndPort hostAndPort)
throws java.io.IOException
hostAndPort - 用于测试连接的主机,不可为空java.io.IOException - 目标连接失败public static byte[] getCurrentMac(java.lang.String hostPortString)
throws java.io.IOException
hostPortString - 用于测试连接的主机(host:port format),不可为空java.io.IOException - 目标连接失败java.lang.IllegalArgumentException - hostPortString格式错误,导致无法从hostPortString解析出主机名和端口号public static byte[] getCurrentMac(java.lang.String... hostAndPorts)
throws java.io.IOException
hostAndPorts - 用于测试连接的主机(host:port format)列表,不可为空java.io.IOException - 无法获取本机MACjava.lang.IllegalArgumentException - hostAndPorts格式错误,导致无法从hostAndPorts解析出主机名和端口号public static java.lang.String sendHttpRequest(java.net.URL url,
java.lang.String requestType)
url - requestType - 请求类型,see HttpURLConnection.setRequestMethod(String)nullpublic static NetworkUtil.ConnectStatus testHttpConnect(java.net.URL url, com.google.common.base.Predicate<java.lang.String> responseValidator)
NetworkUtil.ConnectStatus.FAIL,
建立连接后用
responseValidator验证响应数据,responseValidator返回true则连接有效返回NetworkUtil.ConnectStatus.CONNECTABLE,
responseValidator返回false则连接无效返回NetworkUtil.ConnectStatus.INVALID_RESPONE ,url - 测试的urlresponseValidator - 用于验证响应数据是否有效的验证器,
为null时,只要连接成功就返回NetworkUtil.ConnectStatus.CONNECTABLENetworkUtil.ConnectStatuspublic static NetworkUtil.ConnectStatus testHttpConnect(java.lang.String url, com.google.common.base.Predicate<java.lang.String> responseValidator)
url - 测试的urlresponseValidator - NetworkUtil.ConnectStatustestHttpConnect(URL, Predicate)public static NetworkUtil.ConnectStatus testHttpConnect(java.lang.String host, int port, com.google.common.base.Predicate<java.lang.String> responseValidator)
host - 主机名port - 端口号responseValidator - NetworkUtil.ConnectStatustestHttpConnect(URL, Predicate)public static boolean testHttpConnectChecked(java.net.URL url,
com.google.common.base.Predicate<java.lang.String> responseValidator)
url - responseValidator - NetworkUtil.ConnectStatus.CONNECTABLE返回true,
连接失败NetworkUtil.ConnectStatus.FAIL返回false
响应无效NetworkUtil.ConnectStatus.INVALID_RESPONE抛出异常java.lang.IllegalStateException - 连接响应无效testHttpConnect(URL, Predicate)public static boolean testHttpConnectChecked(java.lang.String url,
com.google.common.base.Predicate<java.lang.String> responseValidator)
url - responseValidator - true,否则返回falsejava.lang.IllegalStateException - 连接响应无效,连接状态为 NetworkUtil.ConnectStatus.INVALID_RESPONE时testHttpConnectChecked(URL, Predicate)public static boolean testHttpConnectChecked(java.lang.String host,
int port,
com.google.common.base.Predicate<java.lang.String> responseValidator)
host - port - responseValidator - true,否则返回falsejava.lang.IllegalStateException - 连接响应无效,连接状态为 NetworkUtil.ConnectStatus.INVALID_RESPONE时testHttpConnectChecked(URL, Predicate)public static final byte[] validateMac(byte[] mac)
java.lang.IllegalArgumentException - MAC地址无效public static void sendMulticast(java.net.InetAddress group,
int port,
byte[] message,
java.lang.Integer ttl,
java.net.NetworkInterface nic)
throws java.io.IOException
group - 组播或广播地址port - 端口message - 发送的数据ttl - time-to-live for multicast packetsnic - 指定发送数据的网卡java.io.IOExceptionpublic static void sendMulticast(java.net.InetAddress group,
int port,
byte[] message,
java.lang.Integer ttl)
throws java.io.IOException
group - 组播或广播地址port - 端口message - 发送的数据ttl - time-to-live for multicast packetsjava.io.IOExceptionpublic static void sendMulticast(java.lang.String bindaddr,
int port,
byte[] message)
throws java.io.IOException
bindaddr - 组播IP地址port - 端口message - java.io.IOExceptionpublic static void sendMulticast(java.lang.String hostPort,
byte[] message)
throws java.io.IOException
hostPort - 组播地址和端口号(:号分隔) 如:244.12.12.12:4331,或[244.12.12.12:4331]message - java.io.IOExceptionpublic static java.util.Set<java.net.InetAddress> ipv4AddressesOfPhysicalNICs()
@SafeVarargs public static java.util.Set<java.net.InetAddress> addressesOfPhysicalNICs(com.google.common.base.Predicate<java.net.InetAddress>... filters)
filters - public static java.util.Set<java.net.InetAddress> ipv4AddressesOfNoVirtualNICs()
@SafeVarargs public static java.util.Set<java.net.InetAddress> addressesOfNoVirtualNICs(com.google.common.base.Predicate<java.net.InetAddress>... filters)
filters - public static boolean isReachable(java.lang.String address,
int port,
int timeoutMillis)
public static boolean isBroadcast(java.net.InetAddress addr)
addr - true,否则返回falseCopyright © 2023. All Rights Reserved.