第1个回答 2011-03-10
不就是查下IP嘛,用nsllookup好了,手上有个前天写好的,share下:
一个批处理:
××××××××××××××××××××××××××××××××××××××××××××××××××
for /f "tokens=1 delims=, " %%a in (PCName.txt) do call :nslookuper %%a
CSCRIPT %0\..\nslookup_get_IP.vbs
del outputns.txt -y
pause
goto :eof
:nslookuper
nslookup %1 >>outputns.txt
×××××××××××××××××××××××××××××××××××××××××××××××××××××××
一个vbs文件nslookup_Get_IP.vbs:
××××××××××××××××××××××××××××××××××××××××××××××××××××××××
Const ForReading = 1, ForWriting = 2
Dim fso1, fso2, OriginalFile, DataFile, strLineTxt, strLinefirst2, nCounter, strInputLine
Dim strFirstPart, strSecondPart, strThirdPart, strFouthPart
Set fso1 = CreateObject("Scripting.FileSystemObject")
Set fso2 = CreateObject("Scripting.FileSystemObject")
Set OriginalFile = fso1.OpenTextFile(".\outputns.txt", ForReading)
Set DataFile = fso2.OpenTextFile(".\PCName_IP.csv", ForWriting, True)
nCounter=0
straddressflag=0
Do While Not OriginalFile.AtEndOfStream
strwriteflag=0
strLineTxt=Trim(OriginalFile.ReadLine)
If Left(strLineTxt,5)="Name:" Then
nCounter=InStr(1,strLineTxt,":")
'strnamewithsuf=Trim(Right(strLineTxt,(Len(strLineTxt)-nCounter-1)))
strnamewithsuf=Trim(Mid (strLineTxt,nCounter+1,99))
'MsgBox(strnamewithsuf)
nCounter=InStr(1,strnamewithsuf,".")
strName=Trim(Left (strnamewithsuf,nCounter-1) )
'MsgBox(strName)
straddressflag=1
End If
If (Left(strLineTxt,8)="Address:" And straddressflag=1) Then
nCounter=InStr(1,strLineTxt,":")
strIP=Trim(Mid (strLineTxt,nCounter+1,99))
straddressflag=0
strwriteflag=1
End If
If strwriteflag=1 Then
strinput=strName + "," + strIP
DataFile.WriteLine (strInput)
End If
Loop
DataFile.Close
OriginalFile.Close
msgbox("done")
××××××××××××××××××××××××××××××
一个文本文件PCName.txt放域名/机器名:
每行一个名字,如:
baidu.com
sina.com
google.com
PC_mine
搞完后,运行批处理文件就可以了(3个文件放在同一个目录下),生产的文件用excel打开。来自:求助得到的回答