Java API IP类简单介绍
来源:互联网 发布:最新的网络用语 编辑:程序博客网 时间:2024/05/16 04:47
1、概述
Java中是面向对象的编程,所谓“万物即是对象”,即使是简单的字符串,封装成String对象后,也提供了丰富而强大函数,方便我们便捷的开发程序。
如果你还未了解Java的编程特点,可能觉的IP地址表示为四段字节码的文本形式就足够了,但是你在学习网络编程的过程中,发现所有函数传入或者返回IP时,都不提供字符串形式,所以有必要了解IP地址在Java API中提供的类及相关方法。
2、IP类及对象
Java API提供IP对应类为:InetAddress。
包路径:java.net.InetAddress。
1、static InetAddress getByName(String host)
host可以为IP地址的字符串形式,如本机地址“127.0.0.1”或者是“192.168.1.1”等;还可以是主机名(也可以称为域名),如本机主机名“localhost”和“www.google.com”。如果提供字面值 IP 地址,则仅检查地址格式的有效性,不检查该IP地址在网络上是否存在。
主机名是为了解决IP地址难以记忆的缺点,所以使用更加人性化的文字标识,比如google的服务器IP地址220.255.2.153,相对于域名“www.google.com”来说不容易记住。
但是所有通过域名的网络请求,最终会通过本地DNS和公共DNS服务器,把域名解析为IP地址,网际层只封装IP地址。
2、static InetAddress getLocalHost()
该方法会返回本机的IP地址对象,与getByName("127.0.01")和getByName("localhost")是同样的效果。
3、常用方法。
String getHostAddress():返回IP地址文本表现形式。
String getHostName():返回IP地址对应的主机名,会在本地Hosts文件下去搜索是否有对应的主机名,如果没有,则显示IP地址文本形式,有,则显示主机名。
4、简单的示例
package com.example.network;import java.net.InetAddress;import java.net.UnknownHostException;public class IPDemo {public static void main(String[] args) throws UnknownHostException {getLocalIP();getIPByName("www.google.com");//检查本地hosts文件和DNS服务器上的对应IP,没有,则报错,参照最后一条。getIPByName("220.255.2.153");//检查本地hosts文件和DNS服务器上的对应域名,没有,则返回字符串形式。getIPByName("1.1.1.1");//不会报错,只检查地址格式的有效性getIPByName("www.google11.com");//报错,DNS无法解析该域名。}private static void getLocalIP() throws UnknownHostException {//1、返回本机IP对象,当查找不到本机IP地址,会抛出UnknownHostException异常InetAddress ip = InetAddress.getLocalHost();//2、查看IP地址字符串形式String ip_str = ip.getHostAddress();System.out.println(ip_str);//3.查看IP地址对应的主机名,优先检查计算机属性中计算机名,然后是本地hosts文件中,最后是公共DNS服务器。String hostName = ip.getHostName();System.out.println(hostName);}private static void getIPByName(String host) throws UnknownHostException {/* * 1、主机名可以是机器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式。如果提供字面值 IP 地址,则仅检查地址格式的有效性。 * 如果是主机名,查找不到该主机名,则抛出异常UnknownHostException。 */InetAddress ip = InetAddress.getByName(host);//2、查看IP地址字符串形式,如果第一步骤中传入主机名,则该方法会检查本地hosts文件及公共DNS服务器,以便返回对应的IP地址;否则,返回IP地址的字符串表现形式。String ip_str = ip.getHostAddress();System.out.println(ip_str);//3.查看IP地址对应的主机名,如果第一步骤中传入IP地址,则该方法会检查本地hosts文件及公共DNS服务器,如果没有则返回IP地址的字符串表现形式;否则,返回主机名。String hostName = ip.getHostName();System.out.println(hostName);}}输出:
192.168.1.102PC201507260924220.255.2.153www.google.com220.255.2.153chatenabled.mail.google.com1.1.1.11.1.1.1Exception in thread "main" java.net.UnknownHostException: www.google11.comat java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:849)at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1200)at java.net.InetAddress.getAllByName0(InetAddress.java:1153)at java.net.InetAddress.getAllByName(InetAddress.java:1083)at java.net.InetAddress.getAllByName(InetAddress.java:1019)at java.net.InetAddress.getByName(InetAddress.java:969)at com.example.network.IPDemo.getIPByName(IPDemo.java:40)at com.example.network.IPDemo.main(IPDemo.java:19)
- Java API IP类简单介绍
- BIG-IP简单介绍
- TCP/IP简单介绍
- HBase Java API类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- hbase java api 类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- HBase Java API类介绍
- curl API简单介绍
- curl API简单介绍
- TCP/IP协议简单介绍
- java工具类简单介绍
- 实时操作系统μC/OS-Ⅱ
- 2016.09.03【初中部 NOIP提高组 】模拟赛C题目
- codeforces 466C C. Number of Ways
- <leetcode>381. Insert Delete GetRandom O(1) - Duplicates allowed
- C/C++文件操作fopen/fscanf/ fprintf/ fclose简单使用方法
- Java API IP类简单介绍
- 阿斯顿发送到发送到费
- ucos_ii中的任务(2)
- 2016.09.03【初中部 NOIP提高组 】模拟赛C题解
- 简单的识别网络instar
- hdu-5868 Different Circle Permutation 矩阵快速幂 + 欧拉函数 + polya计数定理
- 修改linux最大文件句柄数
- 质数
- JS中Array方法中常用方法一:Array.isArray():