Atitit atiMail atiDns新特性 v2 q39
Atitit atiMail atiDns新特性 v2 q39
V1 实现了基础的功能
V2 重构..使用自然语言的方式
c.According_to_the_domain_name("chinanetcenter.com").query_MX_records().outputAsJson().print();
其他的计划
V3 高的性能重构..lambda框架
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
package com.attilax.lang.mail;
public class MxScannerGui {
public static void main(String[] args) {
MxScanner c=new MxScanner();
c.According_to_the_domain_name("chinanetcenter.com").query_MX_records().outputAsJson().print();
}
}
package com.attilax.lang.mail;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.attilax.io.filex;
import com.attilax.io.pathx;
import com.attilax.json.AtiJson;
import com.attilax.lang.CmdX;
/**
* com.attilax.lang.mail.MxScanner
* @author Administrator
*
*/
public class MxScanner {
public static void main(String[] args) throws IOException {
String f = pathx.classPathParent()+"\\dom.txt";
//args[0].trim();
String dir =pathx.classPathParent()+"\\result.txt";
//+ " args[1].trim();
List<String> domains = filex.read2list(f);
filex fx = new filex(dir);
for (String dom : domains) {
try {
String cmd = "nslookup -qt=mx 163.com";
cmd = cmd.replaceAll("163.com", dom);
String t = CmdX.exec(cmd);
List<String> mxs = getMxs(t);
for (String mx : mxs) {
String lin_new=dom+"----"+mx;
fx.appendLine_flush_safe(lin_new);
}
System.out.println(t);
} catch (Exception e) {
e.printStackTrace();
}
}
fx.close();
System.out.println("--f");
}
private static List<String> getMxs(String lookupAfterRetTxt) {
List<String> mxs = new ArrayList<String>();
String[] lines = lookupAfterRetTxt.split("\n");
for (String line : lines) {
try {
if (line.contains("MX preference")
&& line.contains("mail exchanger")) {
String[] a = line.split("=");
String mx = a[a.length - 1].trim();
mxs.add(mx);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return mxs;
}
String domain;
public MxScanner According_to_the_domain_name(String string) {
domain=string;
return this;
}
public MxScanner query_MX_records() {
query_MX_records(this.domain);
return this;
}
private MxScanner query_MX_records(String domain2) {
String cmd = "nslookup -qt=mx 163.com";
cmd = cmd.replaceAll("163.com", domain2);
String t = CmdX.exec(cmd);
List<String> mxs = getMxs(t);
rzt=mxs;
return this;
}
Object rzt;
Object final_rzt;
public MxScanner outputAsJson() {
final_rzt= AtiJson.toJson(rzt);
return this;
}
public void print() {
System.out.println(this.final_rzt);
}
}
Atitit atiMail atiDns新特性 v2 q39的更多相关文章
- Atitit.aticmd v4 新特性q39 添加定时器释放功能
Atitit.aticmd v4 新特性q39 添加定时器释放功能 V1 实现兰cmd V2 标准输入,标准输出,标准错误与重新定向 V3 stdout stderr统一重新定向 V4 添加定 ...
- Atitit opencv版本新特性attilax总结
Atitit opencv版本新特性attilax总结 1.1. :OpenCV 3.0 发布,史上功能最全,速度最快的版1 1.2. 应用领域2 1.3. OPENCV2.4.3改进 2.4.2就有 ...
- Atitit s2018 s3 doc list alldvc.docx .docx s2018 s3f doc compc s2018 s3f doc homepc sum doc dvcCompc dtS312 s2018 s3f doc compc\Atitit PathUtil 工具新特性新版本 v8 s312.docx s2018 s3f doc compc\Atitit 操作日
Atitit s2018 s3 doc list alldvc.docx .docx s2018 s3f doc compc s2018 s3f doc homepc sum doc dvcCompc ...
- Atitit.cateService分类管理新特性与设计文档说明v1
Atitit.cateService分类管理新特性与设计文档说明v1 1. V2 新特性规划1 2. 分类管理1 3. 分类增加与修改维护2 4. Js控件分类数据绑定2 1. V2 新特性规划 增加 ...
- Atitit.linux 内核 新特性 新功能
Atitit.linux 内核 新特性 新功能 1. Linux 3.2内核新特性 2012-02-12 22:41:471 1.1. EXT4:支持更大的块2 1.2. BTRFS:更快的数据清理 ...
- Atitit.jquery 版本号新特性attilax总结
Atitit.jquery 版本号新特性attilax总结 1. Jq1.4 1 2. 1.5 1 3. 1.6 3 4. Jq1.7 3 ⒉提升了事件委派时的性能有了大幅度的提升.尤其是在ie7下: ...
- Atitit html5.1 新特性attilax总结
Atitit html5.1 新特性attilax总结 9. 嵌入 header 和 footer1 7. 校验表单1 6. 浏览器的上下文菜单2 1. 响应式图像2 Attilax觉得还不错的心特性 ...
- Atitit.jquery 版本新特性attilax总结
Atitit.jquery 版本新特性attilax总结 1. Jq1.4 1 2. 1.5 1 3. 1.6 3 4. Jq1.7 3 ⒉提升了事件委派时的性能有了大幅度的提升,尤其是在ie7下: ...
- Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结
Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结 1.1. C# 1.0-纯粹的面向对象 1.2. C# 2.0-泛型编程新概念 1.3. ...
随机推荐
- java中的控制语句
控制语句 1.1 顺序结构 (最常见的) 特点:代码从上往下依次执行 1.2 选择结构 : if 判断语句 : switch 判断语句: Switch语句使用的注意事项: 1.每一个语句结束后需要有一 ...
- wildfly 10的安装部署
http://www.xue163.com/2203/1/22037981_2.html WildFly 曾用名:JBoss Application Server ,红帽公司宣布 JBoss AS 的 ...
- [BZOJ 1293] 生日礼物
Link: BZOJ 1293 传送门 Solution: 这题直接上尺取法就行了吧 先将每种颜色第一个放入优先队列,用$mx$维护当前的末尾位置 每次取出第一个颜色,更新答案.将其下一个放入队列中去 ...
- Mysql-库的基本操作
一 .系统数据库 二 .创建数据库 三 .数据库相关操作 一. 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信 ...
- 【R笔记】glm函数报错原因及解析
R语言glm函数学习: [转载时请注明来源]:http://www.cnblogs.com/runner-ljt/ Ljt 作为一个初学者,水平有限,欢迎交流指正. glm函数介绍: glm(for ...
- [转][译] 分分钟学会一门语言之 Python 篇
Python was created by Guido Van Rossum in the early 90's. It is now one of the most popularlanguages ...
- 12、Django简易框架
安装: tar -zxvf Django-1.5.1.tar.gz cd Django-1.5.1 [root@likun Django-1.5.1]# ls [root@likun Djang ...
- openstack如何设置cpu和内存的超配比例
默认OpenStack的CPU超配比例是1:16,内存超配比例是1:1.5.下面配置的就是这个比例,你可以自己算一下,cat /proc/cpuinfo里面的逻辑核数,再x16就是你能够分配给虚拟机的 ...
- Python批量修改文件夹内所有json文件中部分内容
#coding=utf-8 import os import json #获取目标文件夹的路径 filedir = os.getcwd()+'/ceshi' #获取文件夹中的文件名称列表 filena ...
- Java LinkedList的模拟实现
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱.所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点.查询即从第一个节点,不断指 ...