Java实现Socket之WhoisClient
2016-02-04 14:44
381 查看
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注解处理器
- Struts2架构解析
- selenium java 程序 无法打开火狐及相关问题
- JDK里的设计模式
- Java学习笔记--split篇
- Java实现Socket之TimeClient
- Java基础:JDK安装及Java环境变量配置
- java国际化——日期和时间+排序
- Java 数组
- eclipse 项目导出到android studio使用
- Java学习笔记---SQLYog快捷键
- (转) Java读取文本文件中文乱码问题
- Java数字日期时间格式化处理
- Java经典用法总结
- Eclipse下导入外部jar包的2种方式
- Java实现Internet地址获取
- 如何实现XA式、非XA式Spring分布式事务
- kafka java简单例子
- webmagic的设计机制及原理-如何开发一个Java爬虫
- Spring 工具类