Solved

How do I parse the octets of an IP address into environment variables on a batch file?

Posted on 2008-06-18
4
2,274 Views
Last Modified: 2008-06-27
Greetings -

Does anyone know of a way to parse the octets of an IP address into environment variables in DOS?  There has to be some trick using loops or something to do this.  I would think... :)

What I would like to do is parse the first three octets into one environment variable and just ignore the final octet.

So if I had an IP address if 192.168.100.1, I would like to create an environment variable named %MYIP% and have it contain "192.168.100".

Is this doable?  Thanks in advance...

P.S.  If it would be easier to parse each octet into its own variable such as %OCTET1%, %OCTET2%, etc... I could use that too.  But I'd prefer to have the first three octets in one variable if possible.
0
Comment
Question by:amendala
  • 2
  • 2
4 Comments
 
LVL 17

Expert Comment

by:Jared Luker
ID: 21817700
I'm not sure how to do it with Batch, but here is a way to do it with VBScript.

This will get the IP of all adapters that TCP/IP is enabled on (usually there is just one) and has a first octet of 10.  You could use the split function to break up the IP address by using a period as a delimiter.
Set WshShell = WScript.CreateObject("WScript.Shell")

Set WshSysEnv = WshShell.Environment("SYSTEM")

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set WshNetwork = WScript.CreateObject("WScript.Network")	'Network Object
 
 

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

	Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

	'On error commands are a fix for script errors when a new pc runs the script for the first time.

	'On Error Resume next

	'On Error GoTo 0

	

	For Each IPConfig in IPConfigSet

	

		If Not IsNull(IPConfig.IPAddress) Then 

			For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)

				ipadds = IPConfig.IPAddress(i)

				WScript.Echo "ipadds = " & ipadds

				If Left(ipadds,2) = "10" Then

					CurrentIP = IPConfig.IPAddress(i)

					MACAddress = IPConfig.Macaddress(i)

				End If

			Next

		End If

	Next

Open in new window

0
 

Author Comment

by:amendala
ID: 21817710
Thanks for the reply Jared by unfortunately, it needs to be done in a DOS batch context given the limitations of the environment that this function must work in.  That said, I'll certainly be keeping that snippet for future reference.  :)
0
 
LVL 17

Expert Comment

by:Jared Luker
ID: 21822656
Do all these computers only have one NIC when you do an ipconfig?
0
 

Accepted Solution

by:
amendala earned 0 total points
ID: 21823641
They may have multiple NICs but I only want the one that Windows sees as the "primary slot" which is usually the one with a gateway defined.

I managed to write up a simple elegant solution on my own that works great!  I've included the snippet...

:: Ping the computer the batch file is running on one time and parse

:: out the IP address and assign it to environment variable %IP%.

for /f "tokens=2 delims=[]" %%i in ('ping -n 1 "%computername%"') do set IP=%%i
 

:: Echo %IP% to the screen and parse the tokens using a period as a

:: delimeter and assign each octet to a variable.

for /f "tokens=1 delims=." %%i in ('echo %IP%') do set OCTET1=%%i

for /f "tokens=2 delims=." %%i in ('echo %IP%') do set OCTET2=%%i

for /f "tokens=3 delims=." %%i in ('echo %IP%') do set OCTET3=%%i

for /f "tokens=4 delims=." %%i in ('echo %IP%') do set OCTET4=%%i
 

:: Assign octets 1 through 3 to a single variable.

set OCTET13=%OCTET1%.%OCTET2%.%OCTET3%

Open in new window

0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you get continual lockouts after changing your Active Directory password, there are several possible reasons.  Two of the most common are using other devices to access your email and stored passwords in the credential manager of windows.
When you start your Windows 10 PC and got an "Operating system not found" error or just saw  "Auto repair for startup" or a blinking cursor with black screen. A loop for Auto repair will start but fix nothing.  You will be panic as there are no back…
The viewer will learn how to successfully create a multiboot device using the SARDU utility on Windows 7. Start the SARDU utility: Change the image directory to wherever you store your ISOs, this will prevent you from having 2 copies of an ISO wit…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

896 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now