Java学习笔记----网络编程(一):获取IP地址和域名
2015-12-02 11:11
826 查看
IP和域名简介
IP地址是一个32位的二进制数,在实际生活中是以四个十进制的数来表示的,如 172.199.20.3.每个十进制数代表8位二进制数。不过在我们的实际生活中IP地址不太好记,而引入了域名的概念来唯一标示因特网上的主机或路由器,例如www.baidu.com(百度的域名)
技术要点
获取IP地址和域名的技术要点:
通过java.net.InetAddress类的静态方法getLocalHost()能够获得本机的网络地址信息,也是一个InetAddress对象;
InetAddress类的getHostAddress()方法,能获取该网络地址的IP信息。getHostName()方法获取网络地址的域名或者机器名。静态方法getByName()根据域名获得该域名代表的主机的网络地址信息,返回的是一个InetAddress对象;
当一个主机配置多个网络地址时,可以通过InetAddress类的getAllByName()静态方法根据域名获得该域名代表的主机的所有网络地址信息,返回的是InetAddress对象组。
源代码:
运行截图:
IP地址是一个32位的二进制数,在实际生活中是以四个十进制的数来表示的,如 172.199.20.3.每个十进制数代表8位二进制数。不过在我们的实际生活中IP地址不太好记,而引入了域名的概念来唯一标示因特网上的主机或路由器,例如www.baidu.com(百度的域名)
技术要点
获取IP地址和域名的技术要点:
通过java.net.InetAddress类的静态方法getLocalHost()能够获得本机的网络地址信息,也是一个InetAddress对象;
InetAddress类的getHostAddress()方法,能获取该网络地址的IP信息。getHostName()方法获取网络地址的域名或者机器名。静态方法getByName()根据域名获得该域名代表的主机的网络地址信息,返回的是一个InetAddress对象;
当一个主机配置多个网络地址时,可以通过InetAddress类的getAllByName()静态方法根据域名获得该域名代表的主机的所有网络地址信息,返回的是InetAddress对象组。
源代码:
package corejava; import java.net.InetAddress; import java.net.UnknownHostException; /** * 获取IP地址和域名 * */ public class TestGetIPandDomain { public static void getLocalIP() { try { InetAddress addr = InetAddress.getLocalHost();// 获取本机主机IP地址对象 String hostAddr = addr.getHostAddress();// 获取IP地址 String hostName = addr.getHostName();// 获取本机机器名 System.out.println("本地IP地址:" + hostAddr); System.out.println("本地机器名:" + hostName); } catch (UnknownHostException e) {// 捕获未知主机异常 System.out.println("不能获得主机IP地址:" + e.getMessage()); System.exit(1); } } public static void getIPByName(String hostName){//根据域名获得主机的IP地址 try { InetAddress addr=InetAddress.getByName(hostName);//根据域名创建主机地址对象 String hostAddr=addr.getHostAddress();//获取主机IP地址 System.out.println("域名为:"+hostName+"的主机IP地址:"+hostAddr); } catch (UnknownHostException e) { System.out.println("不能根据域名获得主机IP地址:" + e.getMessage()); System.exit(1); } } public static void getAllIPByName(String hostName){//根据域名获得主机所有的IP地址 try { InetAddress[] addrs=InetAddress.getAllByName(hostName);//根据域名创建主机地址对象 String[] ips=new String[addrs.length]; System.out.println("域名为:"+hostName+"的所有的主机IP地址:"); for (int i = 0; i < addrs.length; i++) { ips[i]=addrs[i].getHostAddress();//获取主机IP地址 System.out.println(ips[i]); } } catch (UnknownHostException e) { System.out.println("不能根据域名获得 主机所有IP地址:" + e.getMessage()); System.exit(1); } } public static void main(String[] args) { getLocalIP();//调用方法获得本机的IP地址 String hostName="www.baidu.com";//百度域名 getIPByName(hostName);//获取百度的主机IP地址 getAllIPByName(hostName);//获取百度域名主机所有的IP地址 } }
运行截图:
相关文章推荐
- 删除RHEL 6.7 的RHN注册和订阅提示
- 多媒体切片与http协议传输
- 谷歌http通信
- http原理介绍(1)
- Android 网络图片缓存
- 获取android手机信息,网络ip,序列号等
- 利用socket进行TCP和UDP编程
- 第二章 OSI参考模型和TCP/IP模型
- HTTP请求中浏览器的缓存机制
- 安卓5.0后httpclient
- 神经网络为什么要有激活函数,为什么relu 能够防止梯度消失
- HTTP协议header标头详解
- 自己动手写一个 iOS 网络请求库——封装接口
- TCPIP三次握手与四次挥手
- iOS开发-网络-合理封装请求接口
- HTTP长连接 && keep-alive
- 关于卷积神经网络原理以及代码实现应用的几点思考
- Andrew Ng机器学习入门学习笔记(四)之神经网络(一)
- SAP HR的https开头webservice调用心得
- Linux下编译安装Apache httpd 2.4