Hopefully "ScriptingTipsAndTricks" helps you with your batch file or vbscript scripting :-)
[Bottom][Contents][Prev]: Maths - included Looping x times example[Next]: PADDING() - Pad on Left,Right, No Truncation
\->Batch Files->NsLookup() - Look up DNS servers

[anchor]

The Code for: "NsLookup() [Look up DNS servers].cmd"

This is the example, a shortcut was installed to this code :

@echo off
::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
:: $Header:   C:/DBAREIS/Projects.PVCS/Win32/ScriptingTipsAndTricks/EXAMPLE[cmd].NsLookup() [Look up DNS servers].cmd.pvcs   1.0   11 Jul 2014 19:31:02   USER "Dennis"  $
::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION


echo TESTING: IsIpAddress()
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
call :TEST "Google.com"         "Y"
call :TEST "Google.NOSUCH.com"  "N"
goto :EOF



::@@@@@@@@@@@
:TEST
::@@@@@@@@@@@
    set   TestHostName=%~1
    set ExpectedAnswer=%~2
    echo TESTING HOSTNAME: "%TestHostName%"
         call :NsLookup "HOST" "%TestHostName%"
    echo   * HOST NAME : "%HOST_NAME%"
    echo   * HOST IP   : "%HOST_IP%"
    echo   * ALIASES?  : "%HOST_ALIASES%"
    echo   * DNS SERVER: "%HOST_DNSSERVER%"

    if     "%HOST_NAME%" == "" set GotHostName=N
    if not "%HOST_NAME%" == "" set GotHostName=Y
    if     "%GotHostName%" == "%ExpectedAnswer%" echo   * CORRECT :-)
    if not "%GotHostName%" == "%ExpectedAnswer%" echo   * ERROR: Incorrect Result...
    echo.
    goto :EOF


::+++++++++++++++++++++++++++++++
:NsLookUp
::+++++++++++++++++++++++++++++++ Version 14.150b
    set ToLookUp=%~2
    set %~1_DNSSERVER=
    set %~1_NAME=
    set %~1_IP=
    set %~1_ALIASES=
    set NsluTmpFile=%TEMP%\NsLookUp().%RANDOM%.txt
    del "%NsluTmpFile%" >nul 2>&1
        set CMD=nslookup.exe "%ToLookUp%" %DnsServer%
        %CMD% > "%NsluTmpFile%" 2>nul
        set FndName=N
        for /F "usebackq delims=" %%l in ("%NsluTmpFile%") do (
            set TITLE=
            set VALUE=
            for /f "tokens=1,2 delims=: " %%y in ("%%l") do set TITLE=%%y& set VALUE=%%z
            if /I "!TITLE!" == "Server" set %~1_DNSSERVER=!VALUE!
            if /I "!TITLE!" == "Name" set %~1_NAME=!VALUE!& set FndName=Y
            if "!FndName!" == "Y" if /I "!TITLE!" == "Address"  set %~1_IP=!VALUE!
            if "!FndName!" == "Y" if /I "!TITLE!" == "Aliases"  set %~1_ALIASES=!VALUE!
        )
    del "%NsluTmpFile%" >nul 2>&1
    goto :EOF

Please note that that I am not trying to show how great I am by producing batch files 9,000 characters long on one line that no one will understand or be able to debug when they go wrong. I am going out of my way to comment the code and make it verbose so beginners and advanced users will both benefit. I don't claim to be an expert that knows everything, if I'm wrong or make a mistake then please contact me and let me know :-)


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: Maths - included Looping x times example[Next]: PADDING() - Pad on Left,Right, No Truncation


ScriptingTipsAndTricks© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Sunday September 07 2014 at 12:50pm
Visit ScriptingTipsAndTricks's Home Page
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.