Existe-t-il une commande simple pour écrire l'adresse IP dans un fichier?Écriture de l'adresse IP dans le fichier
Je sais écrire dans un fichier, mais y at-il un sysvar ou quelque chose?
Existe-t-il une commande simple pour écrire l'adresse IP dans un fichier?Écriture de l'adresse IP dans le fichier
Je sais écrire dans un fichier, mais y at-il un sysvar ou quelque chose?
ipconfig | find "IP Address" > out.txt
Vous avez encore besoin d'extraire l'adresse IP « Adresse IP .............: 0.0. 0,0 "et couper tout espace.
Gardez à l'esprit qu'il peut y avoir plus d'une adresse IP , si vous avez plus d'un adaptateur réseau. – Vicky
Simplest je peux penser:
ipconfig > file
oui, mais savez-vous comment obtenir UNIQUEMENT l'adresse IP? * hm * –
@fuzi: vous pourriez faire quelque chose comme 'ipconfig | trouver "IPv4"> fichier' puis "pour/f" tokens = 2 delims =: "% i dans (fichier) echo% i >> ip.txt' –
Est-ce ce que vous cherchez?
@echo on
for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IP Address"') do set ip=%%b
set ip=%ip:~1%
echo %ip%
ajouté un peu pour afficher également la passerelle (routeur) et ping pour voir si votre DNS fonctionne:
@echo off
:ipaddress
::Get IP address and save it to ip
for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IP Address"') do set ip=%%b
set ip=%ip:~1%
:gateway
::Get Gateway address and save it to gateway
for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "Gateway"') do set gateway=%%b
set gateway=%gateway:~1%
echo IP address is %ip%
echo You router address is %gateway%
pause
cls
ping %gateway% -a
pause
:end
Quelle adresse IP? Quelle passerelle? –
Pour les machines Windows 7:
ipconfig | findstr /b /c:" IPv4" > output.txt
Il sont trois caractères d'espaces entre le guillemet ouvrant et IPv4 puisque cette ligne commence techniquement avec des espaces. Je ne suis pas au courant d'un moyen de dépouiller cela avant la commande findstr. Rappelez-vous que, même si c'est techniquement expressions régulières, la ligne de commande Windows ne les analyse pas de la même manière que, disons, C# ou autre. Il y a une liste des séquences/caractères génériques acceptables (marqués pour XP, mais cela a fonctionné pour moi dans un environnement Win7) here. Il m'a fallu un peu d'essais et d'erreurs, mais cela vous donne seulement les lignes pour les adresses IPv4 assignées, et pas les choses "autoconfigurées" qui encombre les résultats des autres recherches.
Voici un script vbs qui fera l'affaire. Notez que ceci est pour l'adresse IP externe. Regardez juste ci-dessus pour une adresse IP interne/locale.
Voici le code. il suffit de créer un document texte, collez ce, et renommez-le à something.vbs
Const ForReading = 1
Const ForAppending = 8
Dim ipLog, objHTTP, strHTML, varStart
Dim varStop, strIP, strCurrIP, objFSO
Dim txtFile, strLine, objShell
' Log for tracking external IP addresses
ipLog = "ExternalIP.txt"
' Get current external IP address from web
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Call objHTTP.Open("GET", "http://checkip.dyndns.org", False)
objHTTP.Send()
strHTML = objHTTP.ResponseText
' Extarct IP from HTML if HTML was recieved
If strHTML <> "" Then
varStart = InStr(1, strHTML, "Current IP Address:", vbTextCompare) + 19
If varStart Then varStop = InStr(varStart, strHTML, "</body>", vbTextCompare)
If varStart And varStop Then strIP = Mid(strHTML, varStart, varStop - varStart)
Else
strIP = "Unavailable"
End If
' Remove preceeding or trailing spaces
strCurrIP = Trim(strIP)
' Check for log file and last log entry
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not (objFSO.FileExists(ipLog)) Then
' If log file doesn't exist create it
Set txtFile = objFSO.CreateTextFile(ipLog, True)
strIP = ""
Else
' Get last external IP address entry from log file
Set txtFile = objFSO.OpenTextFile(ipLog, ForReading)
Do Until txtFile.AtEndOfStream
strLine = txtFile.ReadLine
If Len(strLine) > 0 Then
strIP = strLine
End If
Loop
End If
txtFile.Close
' Extarct last external IP from log file entry
If strIP <> "" Then
varStart = 1
varStop = InStr(varStart, strIP, ",", vbTextCompare) - 1
If varStop Then strIP = Mid(strIP, varStart, varStop - varStart)
' Remove preceeding or trailing spaces
Trim(strIP)
Else
strIP = "Unavailable"
End If
' Copy IP to clipboard
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "CMD /C ECHO " & strCurrIP & " | CLIP", 2
' Check if external IP has changed
If strCurrIP = strIP Then
' If unchanged display IP
MsgBox "External IP: " & strCurrIP & " is unchanged"
Else
' If changed log to file and display IP
Set txtFile = objFSO.OpenTextFile(ipLog, ForAppending)
txtFile.Write(strCurrIP & vbTab & vbCrLf)
txtFile.Close
MsgBox "External IP: " & strCurrIP & vbCrLf & "This IP address has been logged"
End If
' Clear variables
Set ipLog = Nothing
Set objHTTP = Nothing
Set strHTML = Nothing
Set varStart = Nothing
Set varStop = Nothing
Set strIP = Nothing
Set strCurrIP = Nothing
Set objFSO = Nothing
Set txtFile = Nothing
Set strLine = Nothing
Set objShell = Nothing
Je ne prends pas de crédit pour ce script, je viens de trouver dans un dossier sur mon ordinateur que je ne l'avais pas touché dans un Longtemps.
Je pense que vous faites une supposition dangereuse quand vous dites * l'adresse IP *. Beaucoup d'ordinateurs ont plus d'une adresse IP car ils ont plusieurs cartes réseau, alors assurez-vous que tout ce que vous faites supporte plusieurs adresses IP. –
au cas où vous auriez besoin de voir votre adresse IP externe (celle assignée à votre modèle/routeur) et non l'adresse IP de votre LAN local, voir ici http://stackoverflow.com/questions/41669330/windows-batch-how-to-get -the-external-ip-into-a-batch-file-variable –