最近使用java写爬虫的时候,遇到查询所爬取地址的ip信息,通过百度搜索发现有java.net包里是有两个类可以完成此类工作
1.InetAddress
2.InetSocketAddress
文章图片
通过查看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
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)