Avatar billede minimadsens Nybegynder
11. oktober 2013 - 09:56 Der er 2 kommentarer og
1 løsning

Hjælp med et nslookup script.

Hej.

Jeg sidder og arbejder på et nslookup script i VBS. Jeg har allerede arbejdet lidt på scriptet, men jeg har et helt simpelt problem. Når man skal fortage selve lookup'et, så benytter scriptet sig af en fil der hedder "sl.txt".
Jeg vil meget gerne have at scriptet benytter sig af en Inputbox i stedet, men jeg kan ikke få det til at virke. Den brokker sig bare over noget object.

Her er selve koden:

----------------------

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set SrvList = objFSO.OpenTextFile("sl.txt")

Do Until SrvList.AtEndOfStream
strComputer = lcase(srvlist.readline)
if checkserverResponse(strComputer) then
  srvIP = checkServerIP(strComputer)
  wscript.echo "Hostname: "& strComputer & vbNewLine & "IP: "& srvIP &vbNewLine & vbNewLine& "Do you want to remote?"

else
  wscript.echo strComputer & " is unfortunately down."
 
end if

Loop

Function checkServerIP(serverName)
strTarget = serverName
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("ping -n 1 " & strTarget)
blank = LCase(objExec.StdOut.ReadLine)
strPingResults = LCase(objExec.StdOut.ReadLine)
split1 = split(strPingResults)
tempIP = split1(2)
checkServerIP = mid(tempIP,2,(len(tempIP)-2))
End Function

Function checkServerName(serverIP)
strTarget = serverIP
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("ping -n 1 -a " & strTarget)
blank = LCase(objExec.StdOut.ReadLine)
strPingResults = LCase(objExec.StdOut.ReadLine)
split2 = split(strPingResults)
tempHostName = split2(1)
checkServerName = tempHostName
End Function

Function checkServerResponse(serverName)
strTarget = serverName
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("ping -n 1 -w 1000 " & strTarget)
strPingResults = LCase(objExec.StdOut.ReadAll)
If InStr(strPingResults, "reply from") Then
  checkServerResponse = true
Else
  checkServerResponse = false
End If
End Function
Avatar billede tjp Mester
11. oktober 2013 - 10:23 #1
Er det fordi du vil nøjes med et servernavn fra inputbox i stedet for en liste i en fil? Så skal du fjerne loop og filhåndteringen a la:

strComputer = InputBox("Skriv servernavn")
If Trim(strComputer) = "" Then wscript.Quit

if checkserverResponse(strComputer) then
  srvIP = checkServerIP(strComputer)
  wscript.echo "Hostname: "& strComputer & vbNewLine & "IP: "& srvIP & vbNewLine & vbNewLine & "Do you want to remote?"
else
  wscript.echo strComputer & " is unfortunately down." 
end if
Avatar billede minimadsens Nybegynder
11. oktober 2013 - 10:33 #2
Det lyder så simpelt når du skriver det sådan! ;o)
Der skal nok komme mange flere vbs spørgsmål fra mig. Tak for dit hurtige svar.

Efterlad et svar, så tilegner jeg dig point'ne ;)
Avatar billede tjp Mester
11. oktober 2013 - 11:10 #3
Here U R... :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester