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

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

使用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得到的內容完全一樣。


主站蜘蛛池模板: 欧美怡红院免费全部视频 | 伊人影音 | 亚洲tv精品一区二区三区 | 色妞bbbb女女女女 | 色天使久久综合网天天 | 日本天堂影院在线播放 | 青青草好吊色 | 热e国产 | 真实国产乱子伦精品免费 | 欧美在线播放成人a | 日本免费高清 | 在线色 | 天天躁夜夜躁狠狠躁20216 | 最新国产你懂的在线网址 | 日韩在线1| 人人狠狠综合久久亚洲 | 色综合啪啪 | 天天爽天天狼久久久综合 | 天天操天天插天天射 | 日韩一区二区不卡 | 天堂网在线网站成人午夜网站 | 伊人久久婷婷丁香六月综合基地 | 青娱乐精品视频在线观看 | 青青网视频 | 日本片免费观看一区二区 | 字幕网资源站中文字幕 | 亚洲一区二区成人 | 天天干夜夜爽 | 亚洲精品福利在线观看 | 日本在线视频免费观看 | 四虎在线视频免费观看 | 一级做a爰片久久毛片图片 一级做a爰片久久毛片人呢 | 日韩不卡一二三区 | 欧美性群另类大交人妖 | 午夜视频观看 | 午夜精品福利影院 | 天天躁日日躁狠狠躁一级毛片 | 天天做天天添婷婷我也去 | 日韩一级视频免费观看 | 天天躁日日躁狠狠躁欧美日韩 | 天天色综合2 |