java通过InetAddress查询域名对应的远程地址ip

最近使用java写爬虫的时候,遇到查询所爬取地址的ip信息,通过百度搜索发现有java.net包里是有两个类可以完成此类工作
1.InetAddress
2.InetSocketAddress

java通过InetAddress查询域名对应的远程地址ip
文章图片

通过查看InetSocketAddress源码不难发现其实 InetSocketAddress也是基于InetAddress来定位ip地址的
所以我选择直接使用InetAddress实现
示例如下:

private String getHostAndPort(String val) throws MalformedURLException { URL url1 = new URL(val); String host = url1.getHost(); int port = url1.getPort(); if(port==-1){ if(val.startsWith("https")){ port = 443; }else{ port = 80; } } try { InetAddress byName = InetAddress.getByName(host); host = byName.getHostAddress(); } catch (UnknownHostException e) { e.printStackTrace(); } return host+":"+port; }

缺点:
【java通过InetAddress查询域名对应的远程地址ip】只能获取到单个ip地址信息
如果一个域名映射多个地址ip的情况,改方法是获取不到所有的ip地址的
需要参考我的另外一篇文章 https://blog.csdn.net/weixin_39851884/article/details/94007693

    推荐阅读