Board logo

标题: [网络连接] 批处理怎样ping IP.txt内的IP然后对不通的进行tracert跟踪? [打印本页]

作者: 小柒    时间: 2015-11-4 11:28     标题: 批处理怎样ping IP.txt内的IP然后对不通的进行tracert跟踪?

大家好!最近公司服务器增加,需要每天进行检查,在每台PC上对服务器集群进行ping然后输出一个txt文件(里面只显示最后结果的四行),然后对ping不通的进行tracert路由跟踪结果输出到另一个txt文件。请大侠们帮忙帮我写一个批处理,本人对批处理真是不懂啊
作者: 小柒    时间: 2015-11-4 11:29

那位大侠帮帮忙。主要是都需要输出txt文件
作者: 依山居    时间: 2015-11-4 13:11

不懂就去学。
作者: DAIC    时间: 2015-11-4 13:24

回复 2# 小柒


    除了“输出txt文件”之外,其它部分你已经写好了吗?把代码发出来吧,我试试帮你修改一下
作者: klv    时间: 2015-11-4 15:37

复杂点的可以考虑用编程语言,下面是aardio代码实现的多线程PING工具
从文本中载入IP地址,PING失败界面上IP显示为红色,同时 tracert结果输出到IP同名txt文件。



import win.ui;
/*DSG{{*/
var winform = win.form(cls="ING_FORM";text="PING测试";right=599;bottom=399;border="dialog frame";max=false)
winform.add(
listbox={cls=
"listbox";left=6;top=9;right=588;bottom=386;bgcolor=16777215;edge=1;items={};ownerDraw=true;z=1}
)
/*}}*/

//设定自绘每行的高度
winform.listbox.onMeasureItem = function(measureItem){
    measureItem.itemHeight = 16;  
}

//自绘列表项
winform.listbox.onDrawItem = function(drawItem){
   
var text = winform.listbox.getItemText( drawItem.itemID + 1 )
    ::SetTextColor(drawItem.hDC,winform.listbox.ipColors[drawItem.itemID + 1] ) ;
    :rawText(drawItem.hDC,text,#text,drawItem.rcItem,0x20
/*_DT_SINGLELINE*/)
}
winform.show()
  
//显示PING结果
import thread.command;
winform.listbox.ipColors = {};
thread.command().ping =
function(ip,reply){
   
if( reply ){
        winform.listbox.add(ip)
        winform.listbox.ipColors[winform.listbox.count] = 0xF00
    }
   
else {
       winform.listbox.add(ip +
" tracert...")
       winform.listbox.ipColors[winform.listbox.count] = 0x0f0
    }
}

//创建PING线程
import thread.works;
var work = thread.works( 2,
   
function( ip ) {
        
import icmp.ping;
        
import thread.command;
        
import process.popen;
        
        
var ping = icmp.ping();
        
        
for(i=1;4;1){
            
if( ping.perform(ip) ){
                thread.command.post(
"ping",ip, string.format( "Reply from %s: bytes=%d time=%dms TTL=%d"
                    , ping.ip , #ping.requestData  , ping.echoReply.roundTripTime , ping.echoReply.options.ttl )  )
               
return;
            }  
            
sleep(10)
        }  
        
        thread.command.post(
"ping",ip );
        
var prcs = process.popen(,"tracert",ip);
        
var file = io.open("/" + ip + ".txt","a+b");
        
for( all,out,err in prcs.each() ){
            file.write( out,err );
            file.flush();
        }
        file.close();
        prcs.close();
    }
);

//添加PING任务
work.push("bbs.aau.cn")
work.push(
"www.baidu.com")

//如果需要从文本载入IP地址,这样写
if( io.exist("\ip.txt") ){
   
for ip in io.lines("\ip.txt") {
        work.push(ip);
    }
}
work.waitClose();
winform.msgbox(
"后台线程任务已全部完成");

win.loopMessage();

作者: 小柒    时间: 2015-11-6 09:50

回复 5# klv


    谢了!我还是先好好学学吧!先写了一个让他们先用着您这个我先收起来等我学明白了再好好分析。感谢!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2