成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

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

瀏覽:190日期: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
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产视频亚洲色图| 九一九一国产精品| 综合久久给合久久狠狠狠97色 | 欧美一三区三区四区免费在线看| 在线一区二区三区四区五区| 久久久久久国产精品mv| 国产精品一卡| 性8sex亚洲区入口| 国产精品动漫网站| 国产午夜亚洲精品午夜鲁丝片| 欧美电影免费观看高清完整版在线 | 国产精品嫩草影院av蜜臀| 国产精品久久二区二区| 中文字幕在线一区免费| 亚洲视频一区在线| 亚洲国产精品久久不卡毛片| 五月婷婷激情综合网| 免费在线观看精品| 国产精品一区久久久久| av资源网一区| 亚洲视频在线二区| 亚洲欧美清纯在线制服| 欧洲在线/亚洲| 91精品国产麻豆| 国产91在线|亚洲| 欧美成人一品| 中文网丁香综合网| 在线视频你懂得一区| 欧美一区二区人人喊爽| 国产欧美一二三区| 亚洲精品第1页| 国内成人免费视频| 欧美午夜免费影院| 久久婷婷av| 日韩欧美成人午夜| 亚洲欧美日韩人成在线播放| 香港成人在线视频| 成人高清免费在线播放| 亚洲国产精品www| 欧美日韩国产bt| 国产欧美日韩卡一| 视频一区视频二区中文字幕| 国产精品中文欧美| 亚洲日本欧美在线| 777奇米四色成人影色区| 亚洲国产精品精华液2区45| 午夜伦欧美伦电影理论片| av电影在线观看一区| 国产精品一国产精品k频道56| 884aa四虎影成人精品一区| 国产精品女主播av| 久久国产人妖系列| 欧美 日韩 国产精品免费观看| 老鸭窝毛片一区二区三区| 欧美成人女星排名| 香蕉成人啪国产精品视频综合网| 91同城在线观看| 校园激情久久| 国产欧美一区视频| 久久99精品国产.久久久久| 激情视频一区二区| 欧美年轻男男videosbes| 亚洲激情在线激情| 欧美chengren| 日韩亚洲欧美在线观看| 偷偷要91色婷婷| 亚洲图片欧洲图片日韩av| 51久久夜色精品国产麻豆| 亚洲国产视频一区二区| 欧美日本二区| 日韩天堂在线观看| 日本欧洲一区二区| 国产日韩一区二区三区| 精品国产第一区二区三区观看体验 | 欧美国产国产综合| 成人午夜视频在线观看| 欧美在线一二三四区| 亚洲精品国产一区二区精华液| 91麻豆国产香蕉久久精品| 欧美一级久久久久久久大片| 美腿丝袜亚洲三区| 午夜一级在线看亚洲| 中文字幕五月欧美| 欧美在线亚洲| 国产亚洲精品超碰| 99热国产精品| 日韩免费高清电影| 国产一区二区美女| 欧美日韩综合在线免费观看| 亚洲大尺度视频在线观看| 夜夜嗨av一区二区三区网站四季av| 久久老女人爱爱| 99久久综合国产精品| 日韩一级大片在线观看| 国产一区二区三区久久悠悠色av| 色婷婷久久99综合精品jk白丝| 一区二区三区高清| 免费在线播放第一区高清av| 亚洲精品ww久久久久久p站| 精品不卡视频| 亚洲精品欧美综合四区| 亚洲视频播放| 一区二区三区四区中文字幕| 亚洲麻豆视频| 一区二区三区在线观看国产| 在线观看成人av电影| 国产精品美女一区二区在线观看| 99riav一区二区三区| 久久久天堂av| 国产精品九九| 亚洲婷婷综合久久一本伊一区| 在线播放不卡| 亚洲国产日韩a在线播放性色| 国产精品一区视频| 免费高清在线一区| 日韩欧美一级片| 91色乱码一区二区三区| 国产区在线观看成人精品| 韩国亚洲精品| 亚洲在线视频一区| 91黄色免费看| 国产91清纯白嫩初高中在线观看| 国产亚洲视频系列| 99re66热这里只有精品4| 一区二区三区高清不卡| 欧美午夜精品理论片a级按摩| 国产激情视频一区二区在线观看 | 欧美午夜电影网| 高清免费成人av| 中文字幕av一区二区三区| 国产精品一区二区a| 美女被吸乳得到大胸91| 久久美女艺术照精彩视频福利播放| 国产精品va| 秋霞影院一区二区| 久久―日本道色综合久久| 国产精品久久久对白| 免费的国产精品| 精品理论电影在线观看| 亚洲国产专区| 国产精品一二三区| 中文字幕一区二区三区不卡| 久久久水蜜桃av免费网站| 国模一区二区三区白浆| 中文字幕乱码一区二区免费| 亚洲免费网站| 99视频一区二区| 亚洲成av人片观看| 久久先锋影音av| 色综合久久久久久久久久久| 成人app软件下载大全免费| 亚洲不卡av一区二区三区| 日韩久久久久久| 久久天堂精品| 亚洲视频综合| 不卡一区中文字幕| 三级影片在线观看欧美日韩一区二区| 久久嫩草精品久久久精品| 快she精品国产999| 欧美激情视频一区二区三区在线播放| 日av在线不卡| 亚洲欧美偷拍另类a∨色屁股| 777xxx欧美| 一本色道a无线码一区v| 欧美激情五月| 国产河南妇女毛片精品久久久| 亚洲精品久久久蜜桃| 欧美精品一区二区蜜臀亚洲| 91成人在线观看喷潮| 99亚洲精品| 欧美黄免费看| 成人18精品视频| 精品一区二区三区视频| 亚洲一区二区三区三| 欧美激情综合在线| 精品国免费一区二区三区| 老**午夜毛片一区二区三区| 亚洲二区免费| 欧美chengren| 97精品久久久久中文字幕| 国精产品一区一区三区mba桃花| 亚洲久草在线视频| 久久久国产午夜精品| 宅男噜噜噜66一区二区66| 91久久精品网| 免费久久99精品国产自| 亚洲国产精品www| 女人香蕉久久**毛片精品| 岛国av在线一区| 国内精品伊人久久久久av影院| 亚洲成人免费视| 亚洲人成影院在线观看| 欧美高清在线一区| 国产亚洲精品福利| 久久久久久久久伊人| 精品少妇一区二区三区免费观看| 6080国产精品一区二区| 日韩一区二区三区免费看| 91精品国产一区二区三区蜜臀| 欧美精品久久天天躁|