[list=1]
[*]
[/list]如何用Java获得一个域名的IP地址呢?提供这个功能的类叫做java.net.InetAddress。我们假设现在有这样一个域名,他用一个静态的 getByName来重新获得一个InetAddress,然后得到能够读出的IP地址。下面的代码是很基本的命令行。

import java.net.InetAddress;
import java.net.UnknownHostException;
public class NsLookup {
static public void main(String[] args) {
try {
InetAddress address = InetAddress.getByName(args[0]);
System.out.println(args[0]+"
: "+address.getHostAddress());
}
catch(UnknownHostException uhe) {
System.err.println("Unable to find: "+args[0]);
}
}
}

InetAddress也能够通过使用getAddress()来获得IP地址,但是他的返回值是个4个字节的数组。因此尽管getAddress()在获得IP方面是有用的,但却不适于用来输出。

上面的命令的输出结果看起来就是这样:

bash$ java code.NsLookup www.sun.com
www.sun.com: 192.18.97.241

有时一个域名会包含不止一个IP地址,比如微软的Web服务器,这是为了保持负载平衡。InetAddress提供了一种能够得到一个域名的任何IP地址的方法。让我们来考虑以下代码:

import java.net.InetAddress;
import java.net.UnknownHostException;
public class NsLookup {
static public void main(String[] args) {
try {
String name = args[0];
InetAddress[] addresses = InetAddress.getAllByName(name);
for(int i=0; i<addresses.length; i++) {
System.out.println(name+"["+i+"]
: "+address.getHostAddress());
}
} catch(UnknownHostException uhe) {
System.err.println("Unable to find: "+args[0]);
}
}
}
对于www.sun.com,将会输出:

bash$ java code.NsLookup www.sun.com
www.sun.com[0]: 192.18.97.241
然而,对于www.microsoft.com,将会输出:

bash$ javad code/NsLookup.java
www.microsoft.com
www.microsoft.com[0]: 207.46.230.218
www.microsoft.com[1]: 207.46.197.101
www.microsoft.com[2]: 207.46.230.229
www.microsoft.com[3]: 207.46.197.113
www.microsoft.com[4]: 207.46.230.219
www.microsoft.com[5]: 207.46.230.220
www.microsoft.com[6]: 207.46.197.102

由于InetAddress,localhost必须要特别处理。假如字符串“localhost”直接进入NsLookup程式的原始版本,就会得到以下相当无用的结果:

bash$ java code.NsLookup www.sun.com
localhost: 127.0.0.1
我们能够手动寻找本地地址:

try {
InetAddress localhost = InetAddress.getLocalHost();
System.out.println
("localhost: "+localhost.getHostAddress());
System.out.println
("localhost: "+localhost.getHostName());
} catch(UnknownHostException uhe) {
System.err.println
("Localhost not seeable. Something is odd. ");
}
这里是个输出的例子:

localhost: 192.168.13.15
localhost: crab
本地主机的域名并没有返回完整的该机器的域名,这是因为他取决于该机器的配置。

最后,InetAddress可能会被用来将IP地址转变为这些地址的域名,这对于分析Web日志是很有用的。InetAddress使得研发者们能够轻松的和域名、IP地址打交道,并且使他们能够不必和DNS服务器进行交互。

JAVA解析IP地址相关推荐

  1. java解析ip地址_通过JAVA解析IP地址

    如何用Java获得一个域名的IP地址呢?提供这个功能的类叫做java.net.InetAddress.我们假设现在有这样一个域名,他用一个静态的 getByName来重新获得一个InetAddress ...

  2. java获取IP地址和MAC地址方式

    java获取IP地址和MAC地址方式 前端和后台都可以获取 ip获取方式比较简单,就不做分析了,主要说mac的获取 前端获取的方式与局限性:尝试好几种方式,这种是最易实现.最简单的方式,确实能获取该浏 ...

  3. Java根据IP地址/掩码位(CIDR)和起始IP-终止IP计算网段(IPV4和IPV6)

    Java根据IP地址/掩码位(CIDR)和起始IP-终止IP计算所有IP地址(IPV4和IPV6) 计算IP列表 IPV4 IPV6 IP校验 IPV4 IPV6 计算IP列表 IPV4 1.需要的j ...

  4. java通过ip地址获取相应对应的城市

    发现了一比较好的本地ip对应地址的库资源文件--做一下笔记. 官方网站 https://dev.maxmind.com/geoip/geoip2/geolite2/ 这里提供了免费的库文件,还有很好的 ...

  5. java根据ip地址获取城市地域信息

    java根据ip地址获取城市地域信息 这里提供两个公开的接口,一个是阿里的,一个是新浪的 http://ip.taobao.com/service/getIpInfo.php?ip=123.139.9 ...

  6. 请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。

    世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程. 题目描述 请解析IP地址和对应的掩码,进行分类识别.要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独 ...

  7. linux运维笔记:DNS解析IP地址的过程(dns解析的原理 )

    linux运维笔记:DNS解析IP地址的过程(dns解析的原理 ) 1.首先:说一下dns解析的流程,大家都知道,计算机之间只能通过ip相互通信,因为ip不好记,于是才使用dns服务器把域名解析为相应 ...

  8. java 网站服务器ip地址,java服务器ip地址

    java服务器ip地址 内容精选 换一换 已成功登录Java性能分析.待安装Guardian的服务器已开启sshd.待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei JDK 8 ...

  9. Logstash数据处理服务的过滤插件GeoIP解析IP地址的地理位置

    Logstash数据处理服务的过滤插件GeoIP解析IP地址的地理位置 文章目录 Logstash数据处理服务的过滤插件GeoIP解析IP地址的地理位置 1.GeoIP解析IP地址的地理位置 2.安装 ...

  10. java 获取ip地址_老杜带你学Java【第二课】

    上期链接:老杜带你学Java[第一课] 01 写在前面 欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了.(此处应该有掌声???)本专题为<零基础学Java>专 ...

最新文章

  1. 后疫情时代下,企业数字化转型之路如何走?
  2. 通过html文件生成PDF文件
  3. 修改Mysql表中自增字段的初始值
  4. 是男人就过 8 题--Pony.AI 题 - A String Game
  5. 垃圾回收机制和JVM垃圾回收常见算法
  6. html input 禁止浏览器自动填充
  7. vue使用阿里巴巴矢量图标库
  8. psp模拟器完美字库_安卓PSP模拟器评测:战神——斯巴达之魂
  9. nginx重启后出现[error] open() “/usr/local/var/run/nginx/nginx.pid” failed
  10. 身份证识别和聚合收单
  11. 推荐几个最值得关注的可以投稿赚钱的微信公众号
  12. 此计算机上无法找到autocad2017,win7系统安装autocad2017提示“无法定位inf文件ACAD.inf”如何解决...
  13. Maven命令行查看依赖树
  14. 电钻、电锤、电镐的区别
  15. XSCTF联合招新【真是阳间题】(MSIC+Crypto)
  16. KNN的实现(超级具体)
  17. 卷积神经网络(2D卷积神经网络和3D卷积神经网络理解)
  18. Makefile:104: recipe for target ‘product_timestamp‘ failed
  19. 50个C语言/C++程序员必会遇到的疑难解答
  20. ABP netcore多数据库连接,动态链接字符串

热门文章

  1. 网线/双绞线相关知识
  2. Meltdown(熔断漏洞)- Reading Kernel Memory from User Space/KASLR | 原文+中文翻译
  3. 关于opencv打开摄像头黑屏的问题
  4. ODOO 开源 ERP 和 CRM
  5. 不知道考研那些书比较好么?我来推荐~~~(一)
  6. 电子设计(4)高电平、低电平复位电路
  7. 用降水、比湿和温度计算相对湿度(nc版、python)
  8. Method-Swizzling 方法交换
  9. 最全的常用正则表达式--包含校验数字、字符、一些特殊的需求等等
  10. 学计算机的怎么防辐射,电脑机箱如何防辐射----给大家科普一下