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 _