Let say this is an output of Windows ipconfig command.
c:>ipconfig Windows IP Configuration Wireless LAN adapter Wireless Network Connection: Connection-specific DNS Suffix . : IPv4 Address. . . . . . . . . . . : 192.168.1.10 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.1.1 c:>
In Linux OS, I can easily get just an IP Address using grep and cut command.
user@linux:~$ cat ip c:>ipconfig Windows IP Configuration Wireless LAN adapter Wireless Network Connection: Connection-specific DNS Suffix . : IPv4 Address. . . . . . . . . . . : 192.168.1.10 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.1.1 c:> user@linux:~$ user@linux:~$ cat ip | grep IPv IPv4 Address. . . . . . . . . . . : 192.168.1.10 user@linux:~$ user@linux:~$ cat ip | grep IPv | cut -d ':' -f 2 192.168.1.10 user@linux:~$
However, in Windows this is the best I can get using findstr command.
Is there a way whereby we can cut just the IP portion out of this output?
c:>ipconfig | findstr IPv4 IPv4 Address. . . . . . . . . . . : 192.168.1.10 c:>
What I’m expecting is something like this using native windows command only
c:>ipconfig | <some command here just to get an IP Address only> 192.168.1.10 c:>
Advertisement
Answer
You can use ipconfig | cscript /Nologo script.js with a file script.js containing:
var lines = WScript.Stdin.ReadAll().split('n');
for(var i = 0; i < lines.length; ++i) {
var line = lines[i];
if(line.match(/IPv4 Address/)) {
WScript.echo(line.replace(/ *IPv4 Address[ .]*: /, ''));
}
}
Note that there may be several network adapters, causing multiple IPs to be printed.