me gustaría saber como hacer un batch que me diga la ip publica o sino como hacer un log en FTP con la ip publica que a entrado.(lo del FTP me sería mas fácil gracias)
Para saber la IP publica con batch es algo dificil pero creo recordar que en norfi pc que es una pagina de programacion y scripting (no foro que conste) habia un texto que te explicaba que haciendo ping si no me equivoco a x direccion te devolvia tu IP publica o algo asi, o tal vez fuera mediante FTP pero no lo recuerdo.
Lo siento, un saludo
Cita de: PedroDJavier en 7 Marzo 2014, 18:13 PMhaciendo ping si no me equivoco a x direccion te devolvia tu IP publica o algo asi
En todo caso, devolverá la IP por la que viaja el Ping.
No creo que en Batch se pueda obtener la IP pública de un router.
PD: Aprovecho para repetir que no contesto a mensajes privados pidiendo ayuda, usen el foro, @KZN.Saludos
y visitando alguna página o creando una página para que al visitarla me diga la ip pública??? o programa que al ejecutarse mande la ip pública donde se este ejecutando???
Cita de: KZN en 7 Marzo 2014, 21:50 PM
y visitando alguna página o creando una página para que al visitarla me diga la ip pública??? o programa que al ejecutarse mande la ip pública donde se este ejecutando???
Si tienes la posibilidad de hacerlo por FTP hazlo, lo que podrias hacer es buscar algun programa externo que te diera la IP publica, llamarlo desde un scropt en batch teniendolo compilado en QBFC, es decir, quedaria algo asi:
@echo off
call %MYFILES%\programa.exe -IPublic
ping LOCALHOST /n 10 >nul
exit
Ahora es cosa tuya encontrar ese programa, yo si quieres te hago el favor y te lo compilo si no sabes. Un saludo
PD: Solucion alternativa: este programa http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/GetIP.rar
Lo ejecutas y te da tu IP publica.
EDITO: El programa anterior añadelo a un batch de este metodo:
@echo off
start cmd.exe %MYFILES%\programa.exe
ping LOCALHOST /n 10 >nul
exit
gracias pero no me sirviría xk tendría que implementar "GetIP" a la consola, quiero hacerlo totalmente desde USB, Batch, Programa o FTP.
VBScript
wscript.echo WAN_IP()
function WAN_IP()
set obj = createobject("Microsoft.XMLHTTP")
call obj.open("get", "http://ifconfig.me/ip", false)
obj.send()
strresponse = obj.responsetext
set obj = nothing
if strresponse <> "" then
strIP = strresponse
else
strIP = "Unavailable"
end if
WAN_IP = trim(strIP)
end function
fuente:
http://superuser.com/questions/404926/how-to-get-my-external-ip-address-over-nat-from-the-windows-command-line (http://superuser.com/questions/404926/how-to-get-my-external-ip-address-over-nat-from-the-windows-command-line)
Y aqui modificado para que se guarde la ip en C:\autorun.inf:
Set objFSO=CreateObject("Scripting.FileSystemObject")
outFile="c:\autorun.inf"
Set objFile = objFSO.CreateTextFile(outFile,True)
objFile.Write WAN_IP() & vbCrLf
objFile.Close
function WAN_IP()
set obj = createobject("Microsoft.XMLHTTP")
call obj.open("get", "http://ifconfig.me/ip", false)
obj.send()
strresponse = obj.responsetext
set obj = nothing
if strresponse <> "" then
strIP = strresponse
else
strIP = "Unavailable"
end if
WAN_IP = trim(strIP)
end function
me da el siguiente error :S (http://i57.tinypic.com/dq0xg6.png)
La imagen de error sin la linea que lanza el error no sirve para nada, ¿Nos muestras lo que hay en la linea 3 del código? :¬¬
De todas formas, el error se explica por si mismo, no tienes los permisos de usuario necesarios para realizar "X" acción (acción que se realiza en la linea 3).
Imagino que la linea 3 de tu código será la misma que esta:
CitarSet objFile = objFSO.CreateTextFile(outFile,True)
Saludos
[MOD]: Debes utilizar las etiquetas para insertar código, lee las normas.
Set objFSO=CreateObject("Scripting.FileSystemObject")
outFile="c:\autorun.inf"
Set objFile = objFSO.CreateTextFile(outFile,True)
objFile.Write WAN_IP() & vbCrLf
objFile.Close
function WAN_IP()
set obj = createobject("Microsoft.XMLHTTP")
call obj.open("get", "http://ifconfig.me/ip", false)
obj.send()
strresponse = obj.responsetext
set obj = nothing
if strresponse <> "" then
strIP = strresponse
else
strIP = "Unavailable"
end if
WAN_IP = trim(strIP)
end function
ese el code que pongo, le doy clic derecho y no me sale para ejecutar como administrador :S
Puedes probar a usar la carpeta temporal del SO, en la cual deberías tener suficientes permisos para escribir:
outFile = CreateObject("WScript.Shell").ExpandEnvironmentStrings( "%TEMP%" & "\" & "IP.txt" )
Saludos
perfecto ahora si me va ;)