java localhost 域名_Java的网络功能,通过Java获取域名IP以及本机IP地址

TCP/IP,传输控制协议/网间协议是Internet的主要协议,它定义了计算机和外设进行通信所使用的规则。作为一种成功的网络编程语言,Java为用户提供了十分完善的网络功能,比如获取网络上的各种资源,与服务器建立连接和通信,传递本地数据等,所有这些有关的功能都定义在java.net包中,比如在载入声音或者图片的时候,只要指定了数据的URL地址,就能够利用getAudioClip()和getImage()实现,这种方式是Java网络通信功能中最高级也是最简单的一种。

针对网络通信的不同层次,Java所能提供的网络功能按层次以及使用方法分为四大类: InetAddress,URL,Socket,Datagram。

InetAddress面向的是IP层,用于标识网络上的硬件资源。

URL面向应用层,可以通过URL的网络资源表达形式确定数据在网络中的位置,利用URL对象中提供的相关方法,直接读入网络中的数据,或者将本地数据传送到网络的另一端。

Socket面向传输层,使用的是TCP协议,Socket是指两个程序在网络上的通信连接,由于在TCP/IP协议下的客户/服务器软件通常使用Socket来进行信息交流,因此这种方法也是传统网络程序所经常用到的一种方式。

Datagram也面向传输层,使用的是UDP协议,是另一种网络传输方式,它把数据的目的地记录在数据包中,然后直接放在网络上。

使用InetAddress:

类InetAddress可以用于标识网络上的硬件资源,它提供了一系列的方法,用来描述,获取及使用网络资源。

InetAddress类没有构造函数,因此不能用new来构造一个InetAddress实例。通常是用它提供的静态方法来获取:

public static InetAddress getByName(String host);

其中,host可以是一台机器名,也可以是一个形如“%d.%d.%d.%d”的IP地址或一个DSN域名。另外两种方式为:

public static InetAddress getLocalHost();

public static InetAddress[] getAllByName(String host);

这三个方法通常会产生UnknownHostException异常,应在程序中捕获处理。下面是InetAddress类的几个主要方法,通过上述方法获得InetAddress类的实例后就可以使用。

public byte[] getAddress()–获得本对象的IP地址(存放在字节数组中);

public String getHostAddress()–获得本对象的IP地址 “%d.%d.%d.%d”

public String getHostName()–获得本对象的机器名。

接下来演示Java如何根据域名自动到DNS(域名服务)上查找IP地址,其中与DNS服务器的连接只有一行代码。

package javaapplication24;

/**

*

* @author mjd

*/

import java.net.*;

public class GetIp {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

InetAddress hd = null;

try{

hd = InetAddress.getByName(“www.sau.edu.cn”);

}catch(UnknownHostException e){}

System.out.println(hd);

}

}

136be34314a57ba454d97dfa8ef5d707.png

执行GetIP后,可以得到该地址信息。

通过InetAddress,可以获取本机的IP地址:

package getlocalhost;

/**

*

* @author mjd

*/

import java.net.*;

public class GetLocalHost {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

InetAddress myIP = null;

try{

myIP = InetAddress.getLocalHost();

}catch(UnknownHostException e){}

System.out.println(myIP);

}

}

136be34314a57ba454d97dfa8ef5d707.png

可以得到本机的IP地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值