日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Android開發之InetAddress基礎入門簡介與源碼實例

瀏覽:206日期:2022-09-26 09:58:48

最近在學習soket編程中,看到有需要獲取到IP地址之類的需求,所以就去看了下如何獲取到主機名的IP地址。

其實就是需要用到一個類InetAddress。他是在java.net包下面。

InetAddress類的對象用于IP地址和域名,該類提供以下方法:

getByName(String s):獲得一個InetAddress 類的對象,該對象中含有主機的IP地址和域名,該對象用如下格式表示它包含的信息:www.sina.com.cn/202.108.37.40;

String getHostName():獲取InetAddress對象的域名;

String getHostAddress():獲取InetAddress對象的IP地址;

getLocalHost():獲得一個InetAddress對象,該對象含有本地機的域名和IP地址。

private void test() { try { InetAddress locAdd = InetAddress.getLocalHost(); //得到本地InetAddress對象 /* get www.baidu.com’s ip */ InetAddress remAdd = InetAddress.getByName('www.baidu.com'); //取得遠程InetAddress對象 System.out.println('本機IP地址:' + locAdd.getHostAddress()); //得到本地IP地址 System.out.println('百度IP地址:' + remAdd.getHostAddress()); //得到百度IP地址 System.out.println('本機是否可達:' + locAdd.isReachable(10000)); //10000是超時時間,10s /*打印:本機IP地址:192.168.1.109百度IP地址:115.239.210.26本機是否可達:true */ } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }

很多情況是,某一域名對應的主機IP是可能有多個的,我們也可以一一的取回來。如下:

private void test2() { try { /* 百度可能有多個IP地址,解析回來,所以我們可以用一個數組裝起來 */ InetAddress[] addrs = InetAddress.getAllByName('www.baidu.com'); if (addrs != null && addrs.length > 0) {for (InetAddress addr : addrs) { System.out.println('--->' + addr.getHostAddress());} } } catch (UnknownHostException e) { e.printStackTrace(); } }

IP地址是IP使用的32位(IPv4)或者128位(IPv6)位無符號數字,它是傳輸層協議TCP,UDP的基礎。InetAddress是Java對IP地址的封裝,在java.net中有許多類都使用到了InetAddress,包括ServerSocket,Socket,DatagramSocket等等。

InetAddress的實例對象包含以數字形式保存的IP地址,同時還可能包含主機名(如果使用主機名來獲取InetAddress的實例,或者使用數字來構造,并且啟用了反向主機名解析的功能)。InetAddress類提供了將主機名解析為IP地址(或反之)的方法。

InetAddress對域名進行解析是使用本地機器配置或者網絡命名服務(如域名系統(Domain Name System,DNS)和網絡信息服務(Network Information Service,NIS))來實現。

對于DNS來說,本地需要向DNS服務器發送查詢的請求,然后服務器根據一系列的操作,返回對應的IP地址,為了提高效率,通常本地會緩存一些主機名與IP地址的映射,這樣訪問相同的地址,就不需要重復發送DNS請求了。

在java.net.InetAddress類同樣采用了這種策略。在默認情況下,會緩存一段有限時間的映射,對于主機名解析不成功的結果,會緩存非常短的時間(10秒)來提高性能。

InetAddress類

該類代表ip地址,下面還有兩個子類,分別是Inet4Address和Inet6Address他們分別代表IPV4地址和IPV6地址

該類沒有構造器,可以通過它的兩個靜態方法來獲取InetAddress的實例

>getByName(String host) 根據主機名獲取對應的InetAddress對象

使用IP地址創建InetAddress對象(getByName,getAllByName,getByAddress方法都可以通過IP地址創建InetAddress對象)時,并不需要訪問DNS服務器。因此,通過DNS服務器查找域名的工作就由getHostName方法來完成。

如果IP地址不存在或DNS服務器不允許進行IP地址和域名映射,就返回這個IP地址。

InetAddress address=InetAddress.getByName('141.146.8.66');

System.out.println(address.getHostName());//需要訪問DNS服務器才能得到域名

InetAddress address=InetAddress.getByName('1.2.3.4');//IP地址不存在

System.out.println(address.getHostName());//直接返回IP地址

用域名作為getByName和getAllByName方法的參數得到的InetAddress對象,該對象會得到這個域名,當調用 getHostName時,就無需再訪問DNS服務器,而是直接將這個域名返回。

InetAddress address=InetAddress.getByName('www.jb51.net');

System.out.println(address.getHostName());//不需要訪問DNS服務器就能得到域名

try {InetAddress address = InetAddress.getByName('www.jb51.net');System.out.println(address);//www.jb51.net/119.75.218.70} catch (UnknownHostException e) {e.printStackTrace();}>getByAddress(byte[] addr)根據源ip地址來獲取InetAddress對象

InetAddress address;try {address= InetAddress.getByAddress(new byte[]{119,75,218,70});System.out.println(address);//輸出結果為:/119.75.218.70和字符串str相一致address = InetAddress.getByAddress('www.jb51.net', ipBuf);System.out.println(address);//輸出結果為www.jb51.net/119.75.218.70} catch (UnknownHostException e) {e.printStackTrace();}>InetAddress.getLocalHost()獲取本機的ip地址的主機名

try {InetAddress a = InetAddress.getLocalHost();System.out.println(a);//本機用戶名-PC/本機Ip} catch (UnknownHostException e) {e.printStackTrace();}

該類常用的其他幾個方法:

try {InetAddress address=InetAddress.getLocalHost();System.out.println(address.getHostAddress());//輸出ip字符串System.out.println(address.getHostName());//輸出用戶名System.out.println(address.getCanonicalHostName());//輸出本機的主機名.權限定域名(lan)} catch (UnknownHostException e) {e.printStackTrace();}getCanonicalHostName()方法

定義:public String getCanonicalHostName()

該方法和getHostName方法一樣,也是得到遠程主機的域名。區別是,該方法得到的是主機名,getHostName得到的是主機別名。

1. 使用 getLocalHost() 創建InetAddress對象

此時getCanonicalHostName方法和getHostName方法得到的都是本機名

2. 使用域名 創建InetAddress對象

使用域名創建InetAddress對象后,getHostName方法不會訪問DNS服務器

但getCanonicalHostName方法就不一定了,這取決于DNS服務器如何解釋主機名和主機別名

3. 使用IP地址 創建InetAddress對象

此時getCanonicalHostName方法和getHostName方法完全相同,返回的都是主機名,而不是主機別名。

之所以要使用主機別名,是因為有時主機名可能比較復雜,如Oracle官方網站的主機名bigip-otn-portal.oracle.com,因此,為了使用戶訪問網站更方便,就增加了更簡單的主機別名,如 www.oracle.com

本文主要介紹了Android InetAddress基礎入門簡介與源碼實例,更多關于Android開發技巧請查看下面的相關鏈接

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲欧美日韩国产一区| 日韩精品一区第一页| 久久婷婷亚洲| 亚洲免费在线| 亚洲资源在线| 久久精品 人人爱| 日韩欧美一区二区三区免费观看| 国产一区二区三区日韩精品| 久久91视频| 精品一区二区三区中文字幕在线| 激情偷拍久久| 青草国产精品| 麻豆国产欧美一区二区三区 | 怡红院精品视频在线观看极品| 欧美在线影院| 午夜亚洲福利| 国产黄大片在线观看| 福利一区视频| 蜜桃一区二区三区| 国产精品一区二区三区四区在线观看| 国产videos久久| 久久精品国产www456c0m| 日韩不卡在线| 日本91福利区| 日本不卡免费高清视频在线| 国产精品白浆| 久久国产视频网| 亚洲美洲欧洲综合国产一区| 欧美a在线观看| 国产精品女主播一区二区三区| 亚洲人成网77777色在线播放 | 精品视频在线你懂得| 美日韩精品视频| 国产99久久| 国产欧美一区二区色老头| 亚洲午夜视频| 日本 国产 欧美色综合| 精品国产乱码久久久久久樱花| 日韩精品视频在线看| 99久久久久国产精品| 国产精品成人自拍| 亚洲欧洲av| 亚洲激情中文在线| 久久精选视频| 国产成人调教视频在线观看| 亚洲一区二区三区无吗| 亚洲www啪成人一区二区| 精品欠久久久中文字幕加勒比| 精品视频一区二区三区在线观看 | 日韩精品免费一区二区夜夜嗨| av在线最新| 国产欧美在线| 亚洲网站视频| 成人午夜国产| 欧产日产国产精品视频| 麻豆成全视频免费观看在线看| 激情黄产视频在线免费观看| 日本视频一区二区| 国产精品一区二区av日韩在线| 久久亚洲美女| 在线日韩av| 久久九九精品| 亚洲婷婷免费| 久久久国产精品一区二区中文| 日韩欧美中文| 免费污视频在线一区| 日韩一区电影| 久久gogo国模啪啪裸体| 精品一区91| 日韩国产一区二区三区| 免费一二一二在线视频| 亚洲精品1区2区| 色综合视频一区二区三区日韩 | 欧美高清不卡| 欧美精品资源| 一区二区三区四区在线观看国产日韩| 免费精品视频最新在线| 欧美国产91| 日本麻豆一区二区三区视频| 国产色噜噜噜91在线精品| 国产日韩欧美一区在线| 91一区二区| 欧美日韩免费观看一区=区三区| 日韩精品一卡二卡三卡四卡无卡| 婷婷综合一区| 欧美国产另类| 天使萌一区二区三区免费观看| 中文字幕av一区二区三区四区| 国产精品nxnn| 国产在线日韩| 欧美国产极品| 久久理论电影| 国产激情欧美| 久久一区二区三区电影| 欧美1区免费| 五月国产精品| 精品久久一区| 国产精品一国产精品k频道56| 午夜日韩福利| 粉嫩av一区二区三区四区五区 | 综合激情网...| 精品成av人一区二区三区| 视频一区在线视频| 国产激情久久| 免费精品视频最新在线| 亚洲女同av| 九九久久国产| 亚洲精品在线二区| av亚洲一区二区三区| 欧美日韩三区| 日本久久精品| 久久精品福利| 日本一区免费网站| 男女男精品网站| 久久视频一区| 欧美成人基地 | 国产精品theporn| 在线国产一区| 99久久久国产精品美女| 美女视频一区在线观看| 蜜臀av一区二区三区| 女人av一区| 久久久一本精品| 亚洲天堂一区二区| 亚洲欧美综合| 婷婷综合亚洲| 中文字幕日本一区二区| 首页欧美精品中文字幕| 亚洲激精日韩激精欧美精品| 精品久久影院| 国产精品久久久免费| 麻豆国产91在线播放| 国产精品观看| 日韩在线观看| 99久久99久久精品国产片果冰 | 97人人精品| 97国产成人高清在线观看| 99视频精品视频高清免费| 久久国产电影| 黑丝一区二区| 视频一区视频二区中文| 亚洲资源网站| 日本精品另类| 开心激情综合| 国产suv精品一区二区四区视频| 欧美激情福利| 亚洲精品91| 日本不卡在线视频| 欧美日韩亚洲一区三区| 国产精品宾馆| 色综合www| 国产精品呻吟| 88久久精品| 成人精品动漫一区二区三区| 91精品综合| 91亚洲精品视频在线观看| 高清日韩中文字幕| 视频精品一区二区| 亚洲精品在线二区| 日韩成人精品一区二区| 午夜影院欧美| 精品一区二区三区中文字幕视频| 欧美成人基地| 91大神在线观看线路一区| 亚洲午夜91| 免费日韩一区二区三区| 加勒比视频一区| 久久丁香四色| 先锋影音久久久| 免费毛片在线不卡| 国产精品mv在线观看| 色在线中文字幕| 日本aⅴ免费视频一区二区三区| 国产精品最新| 婷婷成人基地| 激情综合亚洲| 欧美在线精品一区| 欧美日韩一区二区三区视频播放| 久久国产日韩欧美精品| 99久久夜色精品国产亚洲1000部| 秋霞国产精品| 国产精品久久久久77777丨| 免费日韩一区二区| 高清日韩中文字幕| 国产欧美一区二区三区国产幕精品| 欧美日韩国产免费观看视频| 久久国产三级| 久久三级中文| 亚洲精选av| 亚洲香蕉久久| 亚洲三级精品| 日韩精品一区二区三区中文| 亚洲综合三区| 国产视频亚洲| 人人精品久久| 青青伊人久久| 久久99国产精品视频| 国产伦理一区| 精品国产99| 国产aⅴ精品一区二区三区久久|