六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

使用WHOIS協議查詢Internet域名

[摘要]中國建設銀行云南省保山地區分行 楊紹方當我們準備建立一個Web站點,就必須向域名登記機構申請一個Internet域名,因此,我們通常希望了解自己準備使用的域名是否已經被注冊,這時,可以簡單地訪問In...
中國建設銀行云南省保山地區分行 楊紹方

當我們準備建立一個Web站點,就必須向域名登記機構申請一個Internet域名,因此,我們通常希望了解自己準備使用的域名是否已經被注冊,這時,可以簡單地訪問InterNIC站點http://www.internic.net/whois.html,在"Registry Whois"輸入框中輸入需查詢的域名,就可以得到我們需要的結果。本文介紹了如何使用Java編程來實現這個過程。

一 原理
原理非常簡單,域名的查詢主要是基于RFC 954提供的WHOIS協議。在上述過程中,我們實際上是訪問了InterNIC站點的WHOIS服務器,該服務器從WHOIS數據庫中查詢我們所需要的內容。
WHOIS服務器是一個基于"查詢/響應"的TCP事務服務器,它運行在SRI-NIC機器上(26.0.0.73或10.0.0.51),向用戶提供internet范圍內的目錄服務。本地主機上的用戶程序可以通過Internet訪問該服務器,其過程主要有下面三步:
(1)在TCP服務端口43(十進制)連接SRI-NIC服務主機;
(2)發送一個命令,以回車和換行(<CRLF>)結尾;
(3)接受相應命令的返回信息,一旦輸出結束,服務器將關閉連接。
命令的格式非常簡單。可以直接輸入域名,例如,可以使用"sohu.com"查詢"搜狐"網站的域名信息;也可以使用"help"得到詳細的幫助信息。

二 Java socket編程簡述
在Java中,使用Socket類可以實現客戶端的sockets,建立與服務器的網絡連接。本文使用下面所示的Socket類的構造器來創建一個流socket,并連接到主機"whois.internic.net"的端口43。
public Socket(String host, int port, boolean stream) throws IOException
其中,參數host為遠程主機的主機名,port為遠程主機的端口號,如果參數stream為true,則創建一個流socket,否則創建一個數據報socket。
如果創建socket時發生I/O錯誤,將拋擲一個IOException 異常。
當創建了一個連接到遠程主機的socket對象后,我們可以使用getInputStream()和getOutputStream()方法分別得到該socket對象的輸入流和輸出流,用于對該socket進行數據讀寫,為了使應用程序設計簡單,這些方法返回的流通常使用java.io包中的實例對象來處理,例如:DataInputStream和PrintWriter。
從socket讀數據使用readline()方法,一次讀取一行數據(字符串):
public String readLine() throws IOException
向socket寫數據使用print()方法:
public void print(String s)
當完成socket通訊后,應該首先關閉DataInputStream和PrintWriter對象,最后才關閉socket對象。

三 源程序
import java.net.*;
import java.io.*;

public class whois
{
public final static int port = 43;
public final static String hostname = "whois.internic.net";

public static void main(String[] args)
{
Socket theSocket;
DataInputStream theWhoisStream;
PrintStream ps;

//檢查命令行參數
if (args.length <1)
{
System.out.println("\nUsage: java whois <command>");
System.out.println("Parameters:");
System.out.println(
"\tcommand = one or more Domain name, or other command.");
System.out.println("Example:");
System.out.println("\tjava whois sohu.com");
System.out.println("\tjava whois help");

System.exit(1); //退出
}

try {
//在TCP服務端口43(十進制)連接SRI-NIC服務主機
theSocket = new Socket(hostname, port, true);
ps = new PrintStream(theSocket.getOutputStream());
//發送用戶提供的一個或多個命令
for (int i = 0; i < args.length; i++)
ps.print(args[i] + " ");
//以回車和換行(<CRLF>)結尾
ps.print("\r\n");

//接受相應命令的返回信息
theWhoisStream = new DataInputStream(theSocket.getInputStream());
String s;
while ((s = theWhoisStream.readLine()) != null) {
System.out.println(s);
}

//關閉DataInputStream和PrintWriter
theWhoisStream.close();
ps.close();
//關閉socket
theSocket.close();
}
catch (IOException e) {
System.err.println(e);
}
}
}
whois.java利用JDK1.2編譯通過,在Windows 98/NT的命令行提示符運行的方法為:
java whois < Internet域名或命令>
例如,查詢"搜狐"的Internet域名信息可以:
java whois sohu.com
得到詳細的幫助可以:
java whois help
您可以發現,屏幕輸出的內容與使用瀏覽器訪問http://www.internic.net/whois.html得到的內容完全一樣。


主站蜘蛛池模板: 亚洲精品色婷婷在线影院麻豆 | 青青草人人 | 日本视频在线观看播放免费 | 欧美在线专区 | 中文字幕乱视频 | 色综合天天综合高清网国产 | 在线视频欧美亚洲 | 日本视频免费 | 青春草国产视频 | 中文在线最新版天堂bt | 欧美中文字幕在线视频 | 亚洲欧美网站 | 亚洲综合在线最大成人 | 在线观看亚洲专区 | 日日噜噜夜夜躁躁狠狠 | 星辰影院在线观看高清免费观看 | 日本成人片在线观看 | 午夜影院在线 | 日本视频在线免费观看 | 小小的日本动漫在线观看免费高清 | 在线看91| 一区二区在线视频观看 | 亚洲区欧美中文字幕久久 | 婷婷综合 在线 | 中日韩免费视频 | 最新亚洲情黄在线网站 | 啪在线视频 | 欧美偷拍色图 | 速度与激情九 | 中文在线最新版天堂bt | 欧美一区二区三区成人看不卡 | 欧美亚洲国产精品久久高清 | 亚洲性大片 | 四虎永久免费影院 | 手机看片福利盒子久久 | 午夜视频在线网站 | 欧美性群另类大交人妖 | 日本人视频网站 | 香蕉依人| 亚久久| 亚洲第一视频在线观看 |