日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java-通过IP地址获得域名和主机名

發(fā)布時(shí)間:2023/12/20 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java-通过IP地址获得域名和主机名 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

昨天停電,今天補(bǔ)上!!

今天換個(gè)方式貼,總感覺(jué)之前那樣不太好


如何通過(guò)IP地址獲得域名和主機(jī)名?

過(guò)程是這樣的

1.先將IP地址轉(zhuǎn)換為字節(jié)數(shù)組

2.通過(guò)InetAddress類(lèi)的getByAddress()方法,獲得網(wǎng)絡(luò)主機(jī)中具有指定IP地址的InetAddress對(duì)象

3.調(diào)用InetAddress對(duì)象的getCanonicalHostName()方法,獲得對(duì)應(yīng)的域名

4.通過(guò)getHostName()方法,獲得主機(jī)名


以下是所有的屬性

<span style="white-space:pre"> </span>public static JLabel label_ip;public static JLabel label_domain;public static JLabel label_host;//三個(gè)文本域public static JTextField tf_ip;public static JTextField tf_domain; public static JTextField tf_host;//兩個(gè)按鈕public static JButton btn_ByIpGainDomain;public static JButton btn_exit;//public static JFrame fr;public static JPanel panel;

try {<span style="white-space:pre"> </span>String ip=tf_ip.getText(); //IP地址String[] ipStr=ip.split("[.]"); //IP地址轉(zhuǎn)換為字符串?dāng)?shù)組byte[] ipBytes=new byte[4]; //聲明存儲(chǔ)轉(zhuǎn)換后IP地址的字節(jié)數(shù)組for (int i = 0; i < 4; i++) {int m=Integer.parseInt(ipStr[i]); //轉(zhuǎn)換為整數(shù)byte b=(byte)(m&0xff); //轉(zhuǎn)換為字節(jié)ipBytes[i]=b;}InetAddress inetAddr=InetAddress.getByAddress(ipBytes); //創(chuàng)建InetAddress對(duì)象String canonical=inetAddr.getCanonicalHostName(); //獲取域名String host=inetAddr.getHostName(); //獲取主機(jī)名tf_domain.setText(canonical); //在文本框中顯示域名 tf_host.setText(host); //在文本框中顯示主機(jī)名} catch (Exception e2) {// TODO: handle exceptione2.printStackTrace();}
這兩天一直在用InetAddress這個(gè)類(lèi)

以下有一個(gè)博客可以借鑒以下?http://www.cnblogs.com/hnrainll/archive/2012/01/09/2317515.html

最為重要的一句話(huà)是

<strong>InetAddress的實(shí)例對(duì)象包含以數(shù)字形式保存的IP地址,同時(shí)還可能包含主機(jī)名(如果使用主機(jī)名來(lái)獲取InetAddress的實(shí)例,或者使用數(shù)字來(lái)構(gòu)造,</strong> <strong>并且啟用了反向主機(jī)名解析的功能)。InetAddress類(lèi)提供了將主機(jī)名解析為IP地址(或反之)的方法。</strong> <strong>(官方文檔中也有類(lèi)似的解釋)</strong>

  • Host Name Resolution

    Host name-to-IP address resolution is accomplished through the use of a combination of local machine configuration information and network naming services such as the Domain Name System (DNS) and Network Information Service(NIS). The particular naming services(s) being used is by default the local machine configured one. For any host name, its corresponding IP address is returned.

    Reverse name resolution means that for any IP address, the host associated with the IP address is returned.

    The InetAddress class provides methods to resolve host names to their IP addresses and vice versa.?

Translation

主機(jī)名解析

主機(jī)名到 IP 地址的解析?通過(guò)使用本地機(jī)器配置信息和網(wǎng)絡(luò)命名服務(wù)(如域名系統(tǒng)(Domain Name System,DNS)和網(wǎng)絡(luò)信息服務(wù)(Network Information Service,NIS))來(lái)實(shí)現(xiàn)。要使用的特定命名服務(wù)默認(rèn)情況下是本地機(jī)器配置的那個(gè)。對(duì)于任何主機(jī)名稱(chēng),都返回其相應(yīng)的 IP 地址。

反向名稱(chēng)解析?意味著對(duì)于任何 IP 地址,都返回與 IP 地址關(guān)聯(lián)的主機(jī)。

InetAddress 類(lèi)提供將主機(jī)名解析為其 IP 地址(或反之)的方法。



今天精力好,我們一起來(lái)好好學(xué)習(xí)一下這個(gè)IP


首先我們知道百度 ?(www.baidu.com) ?眾所周知


1.www

萬(wàn)維網(wǎng)(亦作“Web”、“WWW”、“'W3'”,英文全稱(chēng)為“World Wide Web”),是一個(gè)由許多互相鏈接的超文本組成的系統(tǒng),通過(guò)互聯(lián)網(wǎng)訪(fǎng)問(wèn)。

這一句足夠了,超文本說(shuō)白了,就是你現(xiàn)在所看到的網(wǎng)頁(yè)頁(yè)面文本

2.baidu

自己命明

3.com

以com為結(jié)尾的是頂級(jí)域名

www.baidu.com ? 整個(gè)稱(chēng)之為域名,為什么要有域名,很簡(jiǎn)單為了方便人們記憶,誰(shuí)愿意天天去記IP地址。

而DNS解析 可以實(shí)現(xiàn)域名的解析從而得到對(duì)應(yīng)的IP地址


好像有些扯遠(yuǎn)了

我們所用的類(lèi)InetAddress中


getHostName

public String getHostName()
獲取此 IP 地址的主機(jī)名。

如果此 InetAddress 是用主機(jī)名創(chuàng)建的,則記憶并返回主機(jī)名;否則,將執(zhí)行反向名稱(chēng)查找并基于系統(tǒng)配置的名稱(chēng)查找服務(wù)返回結(jié)果。如果需要查找名稱(chēng)服務(wù),則調(diào)用?getCanonicalHostName。

如果有安全管理器,則首先使用主機(jī)名和?-1?作為參數(shù)來(lái)調(diào)用其?checkConnect?方法,以查看是否允許該操作。如果不允許該操作,則其返回 IP 地址的文本表示形式。

返回:
此 IP 地址的主機(jī)名;如果安全檢查不允許操作,則返回 IP 地址的文本表示形式。
另請(qǐng)參見(jiàn):
getCanonicalHostName(),?SecurityManager.checkConnect(java.lang.String, int)

這個(gè)說(shuō)明了當(dāng)我們NEW 了一個(gè)InetAddress類(lèi)時(shí),它會(huì)帶著主機(jī)名一起創(chuàng)建。



上面的CODE還用到了getByAddress()方法

getByAddress

public static InetAddress getByAddress(String?host,byte[]?addr)throws UnknownHostException
根據(jù)提供的主機(jī)名和 IP 地址創(chuàng)建 InetAddress。不檢查名稱(chēng)服務(wù)的地址有效性。

主機(jī)名可以是機(jī)器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式。

也不在主機(jī)名上執(zhí)行有效性檢查。

如果 addr 指定 IPv4 地址,則返回 Inet4Address 的實(shí)例;否則將返回 Inet6Address 的實(shí)例。

IPv4 地址 byte 數(shù)組的長(zhǎng)度必須為 4 個(gè)字節(jié),IPv6 byte 數(shù)組的長(zhǎng)度必須為 16 個(gè)字節(jié)

參數(shù):
host?- 指定主機(jī)
addr?- 網(wǎng)絡(luò)字節(jié)順序的原始 IP 地址
返回:
根據(jù)原始 IP 地址創(chuàng)建的 InetAddress 對(duì)象。
拋出:
UnknownHostException?- 如果 IP 地址的長(zhǎng)度非法
從以下版本開(kāi)始:
1.4

參數(shù) :addr -網(wǎng)絡(luò)字節(jié)順序的原始地址

返回:根據(jù)原始IP地址 創(chuàng)建的InetAddress對(duì)象



附上完整CODE

import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.InetAddress;import javax.naming.Context; import javax.swing.*; public class ByIpGainDomainFrame extends JFrame{GetLocalHostIpFrame getLocalHostIpFrame;//三個(gè)標(biāo)簽public static JLabel label_ip;public static JLabel label_domain;public static JLabel label_host;//三個(gè)文本域public static JTextField tf_ip;public static JTextField tf_domain; public static JTextField tf_host;//兩個(gè)按鈕public static JButton btn_ByIpGainDomain;public static JButton btn_exit;//public static JFrame fr;public static JPanel panel;public static void main(String[] args){fr=new JFrame("By ip gain the domain and host!");panel=new JPanel();label_domain=auto_Label(panel, label_domain,50,50,50,50,"域名:");label_host=auto_Label(panel, label_host, 50, 100, 50, 50, "主機(jī)名:");label_ip=auto_Label(panel, label_ip, 50, 150, 50, 50, "IP:");tf_domain=auto_TextField(panel, tf_domain, 100, 50, 200, 50,null);tf_host=auto_TextField(panel, tf_host, 100, 100, 200, 50, null);tf_ip=auto_TextField(panel, tf_ip, 100, 150, 200, 50, null);panel.setLayout(null);auto_Button(panel,btn_ByIpGainDomain, 50, 300, 150, 50,"獲取域名和主機(jī)名",1);auto_Button(panel,btn_exit, 250, 300, 100, 50,"退出系統(tǒng)",0);fr.add(panel);fr.setSize(500, 500);fr.setDefaultLookAndFeelDecorated(true);fr.setVisible(true);}public static JLabel auto_Label(JPanel jPanel,JLabel label,int x,int y,int length,int width,String str){label=new JLabel();label.setText(str);label.setBounds(x,y,length,width);jPanel.add(label);return label;}public static JTextField auto_TextField(JPanel jPanel,JTextField tf,int x,int y,int length,int width,String str){tf=new JTextField();tf.setText(str);tf.setBounds(x,y,length,width);jPanel.add(tf);return tf;}private static void auto_Button(JPanel jPanel,JButton btn,int x,int y,int length,int width,String str,int choose){btn=new JButton();System.out.print("\n"+x+" "+y+" "+length+" "+width+" ");btn.setText(str);btn.setBounds(x,y,length,width);jPanel.add(btn);switch (choose) {case 1:{btn.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {try {String ip=tf_ip.getText(); //IP地址String[] ipStr=ip.split("[.]"); //IP地址轉(zhuǎn)換為字符串?dāng)?shù)組byte[] ipBytes=new byte[4]; //聲明存儲(chǔ)轉(zhuǎn)換后IP地址的字節(jié)數(shù)組for (int i = 0; i < 4; i++) {int m=Integer.parseInt(ipStr[i]); //轉(zhuǎn)換為整數(shù)byte b=(byte)(m&0xff); //轉(zhuǎn)換為字節(jié)ipBytes[i]=b;}InetAddress inetAddr=InetAddress.getByAddress(ipBytes); //創(chuàng)建InetAddress對(duì)象String canonical=inetAddr.getCanonicalHostName(); //獲取域名String host=inetAddr.getHostName(); //獲取主機(jī)名tf_domain.setText(canonical); //在文本框中顯示域名 tf_host.setText(host); //在文本框中顯示主機(jī)名} catch (Exception e2) {// TODO: handle exceptione2.printStackTrace();}}});}break;default:{btn.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自動(dòng)生成的方法存根System.exit(0);}});}break;}}}


總結(jié)

以上是生活随笔為你收集整理的Java-通过IP地址获得域名和主机名的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99re超碰| 中国极品少妇xxxxx | www色天使| 男女视频在线免费观看 | 欧美一卡二卡三卡四卡 | 动漫艳母在线观看 | 欧美射图 | av超碰在线观看 | 亚洲成人播放 | 手机av免费 | 日本va欧美va精品发布 | 欧美三级三级三级爽爽爽 | 国产男女无套 | 一区二区日韩欧美 | 欧美破处大片 | 亚洲影院av | 成人在线视频在线观看 | 综合免费视频 | 日本强好片久久久久久aaa | 在线看片资源 | 久久久久久久久久影视 | 欧美性jizz18性欧美 | 91在线视频国产 | 成年人网站免费看 | 日本少妇在线 | 欧美国产激情 | 国产一级淫片a视频免费观看 | 夜夜摸夜夜操 | 狠狠插狠狠操 | 香蕉视频在线免费看 | 国产成人精品午夜福利Av免费 | 日本少妇一区 | 2020自拍偷拍 | 日本福利一区 | 在线看片国产 | 三上悠亚亚洲一区 | 久久爱一区 | 成人动漫h在线观看 | 久久性生活视频 | 无码人妻丰满熟妇啪啪网站 | 日本在线黄色 | 夜夜成人| 综合激情视频 | 国产精品人成 | 福利免费观看 | 来吧亚洲综合网 | 青青草免费在线观看视频 | 九九热这里都是精品 | 日本二三区 | 18视频在线观看网站 | 久久久一二三区 | 国产a免费 | 波多野结衣黄色网址 | 国产精品美女在线观看 | 91网站在线免费看 | 亚洲乱视频 | 精国产品一区二区三区a片 国产精品第一 | 亚洲欧洲成人精品久久一码二码 | 2020自拍偷拍 | 国产精品一区麻豆 | 99精品亚洲| xxxx视频在线 | 四级毛片 | 中文字字幕在线中文乱码 | 天天干,天天干 | 日韩精品一区二区在线视频 | 成人在线视频一区二区 | 蜜色av| 中文久久久久 | 日本www网站 | а√天堂www在线天堂小说 | 顶级嫩模啪啪呻吟不断好爽 | 中文日韩欧美 | 台湾性生生活1 | 色一情一区二区三区 | 日本熟妇毛耸耸xxxxxx | 波多野结衣a级片 | 一区二区三区四区亚洲 | 国产成人午夜 | 色激情网 | 95香蕉视频 | 无套内谢少妇露脸 | 成人精品视频一区二区三区尤物 | 欧美xxxxbbbb | 国产精品无码免费在线观看 | 午夜免费播放观看在线视频 | 国产第一网站 | www在线观看免费视频 | 亚洲天堂一区二区 | 黑丝一区二区三区 | 亚洲成人自拍偷拍 | 色欲久久久天天天综合网精品 | 精品av一区二区 | 天天摸天天碰天天爽天天弄 | 欧美精品在欧美一区二区 | 青青艹视频 | 欧美日一区二区三区 | 国产欲妇 | 天天操夜操 |