我有一个点分十进制表示法的本地IP地址String.我想将其转换为将其转换InetAddress为Socket,但我需要在不进行DNS查找的情况下执行此操作(因为这可能会导致冗长的超时).
有没有一个现成的方法,或者我需要拆分String并InetAddress从其字节创建?
更新的工厂方法InetAddress.getByName()和InetAddress.getByAddress()不似乎是一个不错的选择,因为它们都还接受主机名称,例如java.sun.com.毫无疑问,他们是否会尝试在实施中联系DNS服务器.
Pra*_*ran 24
这样做
InetAddress inetAddress = InetAddress.getByName("192.168.0.105");
Run Code Online (Sandbox Code Playgroud)
如果提供了文字IP地址,则仅检查地址格式的有效性.
java源代码
Run Code Online (Sandbox Code Playgroud)// if host is an IP address, we won't do further lookup if (Character.digit(host.charAt(0), 16) != -1 || (host.charAt(0) == ':')) { }
您可以使用专门针对您的用例记录的GuavaInetAddresses#forString():
返回
InetAddress具有给定字符串表示的 。
这特意避免了所有名称服务查找(例如,没有 DNS)。
(强调)
| 归档时间: |
|
| 查看次数: |
20190 次 |
| 最近记录: |