Java实现Socket之WhoisClient

代码内容

  • 从常用的whois服务器的43号端口得到对应域名的所有注册信息并显示出来

代码实现

/* WhoisClient.java */
import java.io.*;
import java.net.*; public class WhoisClient {
public static void main(String[] args) {
BufferedReader systemIn = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the domain names. Enter \"exit\" to quit.");
try {
while (true) {
/* 输入流提示控制 */
System.out.print("> ");
String host = (args.length > 0) ? args[0] : systemIn.readLine();
if (host.isEmpty()) {
continue;
} else if (host.equalsIgnoreCase("exit")) {
break;
}
whois(host);
if (args.length > 0)
break;
}
} catch (IOException e) {
e.printStackTrace();
}
} private static void whois(String host) {
try {
/* 设置服务器地址和端口号 */
InetAddress server = InetAddress.getByName("whois.markmonitor.com");
int port = 43;
/* 建立Socket连接 */
Socket socket = new Socket(server, port);
/* 写入发送消息到Socket */
PrintWriter out = new PrintWriter(socket.getOutputStream());
out.println(host);
out.flush();
/* 从Socket读取消息 */
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
/* 格式化输出 */
StringBuilder ret = new StringBuilder();
String line;
while ((line = in.readLine()) != null) {
ret.append(line + "\r\n");
}
/* 安全关闭Socket */
socket.close();
/* 结果输出判断 */
if (ret.toString().trim().isEmpty()) {
System.out.println("该域名不在whois上注册");
} else {
System.out.println(ret.toString());
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

运行截图







Java实现Socket之WhoisClient的更多相关文章

  1. Java发送socket请求的工具

    package com.tech.jin.util; import java.io.ByteArrayOutputStream; import java.io.IOException; import ...

  2. java基于socket公共聊天室的实现

    项目:一个公共聊天室功能的实现,实现了登录聊天,保存聊天记录等功能. 一.实现代码 1.客户端 ChatClient.java import java.io.BufferedReader; impor ...

  3. JAVA之Socket编程

    网上对Socket的诠释很多,也很全,在这里我就不多说了,总之,现在的网络处处都在使用Socket.本帖是一个Socket的例子,用来模拟一个简单的登录系统,只有核心代码,访问数据库.输入神马的统统没 ...

  4. Java多线程Socket在控制台输出的多人聊天室编程

    服务器端代码 import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java ...

  5. Java 多线程Socket编程通讯--实现聊天室代码

    1.创建服务器类 import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import ja ...

  6. 简单通过java的socket&serversocket以及多线程技术实现多客户端的数据的传输,并将数据写入hbase中

    业务需求说明,由于公司数据中心处于刚开始部署的阶段,这需要涉及其它部分将数据全部汇总到数据中心,这实现的方式是同上传json文件,通过采用socket&serversocket实现传输. 其中 ...

  7. java之socket

    socket系java中网络编程的内容. 1客户端: package com.wtd.socket; import java.io.BufferedReader; import java.io.IOE ...

  8. Java实现Socket之TimeClient

    Java实现Socket之TimeClient 代码内容 从time.nist.gov服务器的37号端口得到时间信息,并对时间进行解析后显示出来 代码实现 /* TimeClient.java */ ...

  9. Flex通信-与Java实现Socket通信实例

    Flex通信-与Java实现Socket通信实例  转自:http://blessht.iteye.com/blog/1136888 博客分类: Flex 环境准备 [服务器端] JDK1.6,“ja ...

随机推荐

  1. 【WCF 2】理解WCF框架的简单小实例

    导读:上篇博客介绍了WCF框架的整体情况,然后,闲着没事儿,自己做了一个及其简单的WCF框架的例子帮助自己理解.从简单的入手,一步一步深入!本篇博客是介绍怎么用VS2012从头创建一个WCF项目,是一 ...

  2. Android knock code analysis

    My colleague she forgot the knock code and ask me for help. I know her phone is LG G3 D855 with Andr ...

  3. CAPI HTTP服务搭建(文件在本机)

    南康HTTP服务器搭建步骤如下: 1.环境准备 2.添加应用程序 3.访问测试 4.添加虚拟目录 5.下载测试 6.上传测试 7.最终效果 8.权限设置 有问题请留言.

  4. 为js和css文件自动添加版本号

    web应用必然要面对缓存问题,无论前台后台都会涉足缓存.特别是对于前端而言,缓存利用的是否得当直接关系到应用的性能. 通常情况下,我们会倾向于使用缓存,因为缓存一方面可以减少网络开销,一方面可以减轻服 ...

  5. Apache开启rewrite

    1.找到LoadModule rewrite_module modules/mod_rewrite.so去掉前面的#号 2.找到AllowOverride None 改为:AllowOverride ...

  6. hdu 2255 奔小康赚大钱 KM算法

    看到这么奇葩的题目名我笑了,后来这么一个裸的KM调了2小时我哭了…… 这是个裸的KM算法,也没什么多说的,主要是注意多组数据时,每次都要把各种数组清空啊,赋值啊什么的,反正比较麻烦.至于为什么调了2小 ...

  7. mysql快速上手1

    mysql简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅 ...

  8. chrome调试学习

    参考:http://ued.taobao.com/blog/2012/06/debug-with-chrome-dev-tool/ http://guoshuang.com/frontend/chro ...

  9. angularJS 数组更新时重新排序之解决方案一:这个坑,绕开吧,不跳了……

    今天产品大人发现了一bug,图表数据和数据库总是对不上,原因是当前端更新数组时,angularJS默认对数组进行了排序. // 点击事件:input复选框 $scope.fnClickUpdateAr ...

  10. php使用base64加密解密图片

    php使用base64加密解密图片的实例代码. 例子: <?php //文件名:base64.php $data="/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAB ...