Get IP Domain CName

This code gets the Domain, Computer-Name and TCPIP address from the registry .

It can use an offline registry SYSTEM file from another computer (C:\WINDOWS\SYSTEM32\CONFIG\SYSTEM  or use the current local registry.


=== OFFLINE REGISTRY ===

TCPIP=10.1.129.11

TCPIP1=10

TCPIP2=1

TCPIP3=129

TCPIP4=11

Domain=DGF.12.1

Computer-Name=I11205D342


=== ONLINE ===

Environment variable Domain not defined

COMPUTERNAME=OFFICE_32

localIp=192.168.1.112



@echo off

set OFFLINE_FILE=C:\DRIVERS\SYSTEMk



echo.

echo === OFFLINE REGISTRY ===

if not exist %OFFLINE_FILE% echo ERROR: %OFFLINE_FILE% MISSING & goto :NO_OFF

takeown /f %OFFLINE_FILE% > nul

REM Get ComputerName, Domain name and IP from offline registry file

REM reg load HKLM\Temp E:\Windows\System32\config\SYSTEM > nul

reg load HKLM\Temp %OFFLINE_FILE% > nul

REM get last good control set (only valid for 001 to 009)

set CC=

set Domain=

set Bind=

set TCPIP=

set TCPIP1=

set TCPIP2=

set TCPIP3=

set TCPIP4=

set Computer-Name=

Set "Pre=HKLM\Temp"

For /F "Tokens=2*" %%A In ('Reg Query "%Pre%\Select" /V "LastKnownGood" 2^>Nul')Do Set "CC=%%B"

set /a CC=%CC%+0

if %CC% LEQ 9 set CC=0%CC%

set CC=ControlSet0%CC%

For /F "Tokens=2*" %%A In ('Reg Query "%Pre%\%CC%\Services\Tcpip\Parameters" /V "Domain" 2^>Nul')Do Set "Domain=%%B"

For /F "delims={} Tokens=3,4" %%A In ('Reg Query "%Pre%\%CC%\Services\Tcpip\Linkage" /V "Bind" 2^>Nul')Do Set "Bind=%%B"

For /F "Tokens=2*" %%A In ('Reg Query "%Pre%\%CC%\Services\Tcpip\Parameters\Interfaces\{%Bind%}" /V "IPAddress" 2^>Nul')Do Set "TCPIP=%%B"

For /F "Tokens=3,4,5,6 delims=\t. " %%A In ('Reg Query "%Pre%\%CC%\Services\Tcpip\Parameters\Interfaces\{%Bind%}" /V "IPAddress" 2^>Nul')Do (Set "TCPIP1=%%A" & set "TCPIP2=%%B" & set "TCPIP3=%%C" & set "TCPIP4=%%D")

For /F "Tokens=2*" %%A In ('Reg Query "%Pre%\%CC%\Control\Computername\ComputerName" /V "ComputerName" 2^>Nul')Do Set "Computer-Name=%%B"

reg unload HKLM\Temp > nul

set TCP

set Domain

set Computer-Name


:NO_OFF

echo.

echo === ONLINE ===

set Domain=

Set "Pre=HKLM\System"

set CC=CurrentControlSet

For /F "Tokens=2*" %%A In ('Reg Query "%Pre%\%CC%\Services\Tcpip\Parameters" /V "Domain" 2^>Nul')Do Set "Domain=%%B"

FOR /F "tokens=4 delims= " %%i in ('route print ^| find " 0.0.0.0"') do set localIp=%%i

set Domain

set ComputerName

set localIp


SET _computerDom=

FOR /F "usebackq tokens=2 delims==" %%a IN (`wmic.exe COMPUTERSYSTEM GET DOMAIN /Value ^|find /i "domain"`) DO set _computerDom=%%a


SET _fqdn=

SET _computerDomain=

@REM + find the computer domain name

 FOR /F "usebackq tokens=*" %%a IN ('ipconfig /all') DO (

     @((ECHO %%a | findstr /i /c:"Primary Dns Suffix") && SET _str=%%a) > NUL 2>&1

 )

 FOR /F "tokens=2 delims=:" %%a IN ("%_str%") do SET _computerDomain=%%a

 if not "%_computerDomain%"=="" SET _computerDomain=%_computerDomain: =%

 if not "%_computerDomain%"=="" SET _fqdn=%COMPUTERNAME%.%_computerDomain%


set _