elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  hay algún script con bat que pueda buscar y mandar la dirección IP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: hay algún script con bat que pueda buscar y mandar la dirección IP  (Leído 5,129 veces)
lordluisiv

Desconectado Desconectado

Mensajes: 66


Ver Perfil
hay algún script con bat que pueda buscar y mandar la dirección IP
« en: 22 Septiembre 2017, 22:29 pm »

hay algún script con bat que pueda buscar y mandar la dirección IP de la computadora que lo ejecuto a un correo ???
Engel Lex: Los títulos deben ser descriptivos


« Última modificación: 22 Septiembre 2017, 22:43 pm por engel lex » En línea

**Aincrad**


Desconectado Desconectado

Mensajes: 683



Ver Perfil WWW
Re: hay algún script con bat que pueda buscar y mandar la dirección IP
« Respuesta #1 en: 23 Septiembre 2017, 00:37 am »

en batch si se puede obtener la ip pero no se puede enviar.

code para obtener la ip.

Código
  1. @echo off
  2. ipconfig >> ip.txt
  3. pause


Si quieres enviarla tienes que crear un vbs:

Código
  1. set objcdo=createobject("cdo.message")
  2. objcdo.subject="Prueba de envío"
  3. objcdo.from="direccionmail"
  4. objcdo.to="maildestinatario"
  5. objcdo.textbody="Este es el texto del mail"
  6. objcdo.configuration.fields.item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
  7. objcdo.configuration.fields.item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "direccionsmtp"
  8. objcdo.configuration.fields.item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = puertosmtp
  9. objcdo.configuration.fields.item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
  10. objcdo.configuration.fields.item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
  11. objcdo.configuration.fields.item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "direccionmail"
  12. objcdo.configuration.fields.item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "contraseña"
  13. objcdo.configuration.fields.item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1
  14. objcdo.configuration.fields.update
  15. objcdo.send

si quieres enviar el txt que tiene la ip pon:

Código
  1. objcdo.addattachment("c:\miarchivo.txt")



SI QUIERES OBTENER LA IP Y ENVIARLA SIN PROBLEMAS APRENDE VB.NET O VB6


PD:puedes enviar la ip solo con el batch y con una herramienta comandline llamada zeta uploader.  https://www.zeta-uploader.com/zetauploader-setup.exe


En línea



lordluisiv

Desconectado Desconectado

Mensajes: 66


Ver Perfil
Re: hay algún script con bat que pueda buscar y mandar la dirección IP
« Respuesta #2 en: 23 Septiembre 2017, 05:20 am »

uuu me gusta como trabajan aquí gracias ;-)
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: hay algún script con bat que pueda buscar y mandar la dirección IP
« Respuesta #3 en: 27 Septiembre 2017, 13:09 pm »

code para obtener la ip.

Código
  1. @echo off
  2. ipconfig >> ip.txt
  3. pause

El bueno de @warcry se tiraría de los pelos al leer esa respuesta... xD

IpConfig no es una solución viable en la mayoría de casos, puesto que depende del tipo de conexión y la configuración de ésta. De nada sirve en la mayoría de casos usar IpConfig si te conectas a través de un router y quieres obtener la IP pública/externa... que es la que normálmente se querrá obtener en estos casos; IpConfig solo mostrará la IP privada (ej. 192.168.1.3)

PD: Hay que informarse y verificar las cosas un poco más antes de ofrecer respuesta a todo el mundo, @Aincrad.



Respecto a la pregunta principal, Batch no fue diseñado para satisfacer tareas como esta. Como ya te han comentado, para enviar un e-mail necesitas recurrir a otros lenguajes de programación o herramientas command-line de terceros desde Batch. Pero todo eso es complicarse la vida cuando tienes a tu disposición un lenguaje de programación tan flexible como PowerShell.

He escrito este código de ejemplo con el que puedes obtener la IP pública haciendo una petición al servicio gratuito de http://checkip.dyndns.org, y también para enviar un correo mediante GMail u Outlook.com (Hotmail). Las funciones de este código fuente en VB.NET han sido extraidas de mi framework comercial ElektroKit Framework para .NET.

( recuerda que para poder enviar correos mediante GMail primero es necesario permitir el acceso a aplicaciones en la configuración de tu cuenta de Google: https://myaccount.google.com/lesssecureapps )

script.ps1
Código
  1. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
  2. # ElektroKit Framework for .NET can be bought here:                     #
  3. #                                                                       #
  4. # https://codecanyon.net/item/elektrokit-class-library-for-net/19260282 #
  5. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
  6.  
  7. $vbCode = @'
  8. Imports System
  9. Imports System.IO
  10. Imports System.Net
  11. Imports System.Net.Mail
  12. Imports System.Xml.Linq
  13.  
  14. Namespace ElektroKitFramework
  15.  
  16.    Public NotInheritable Class NetworkUtil
  17.  
  18.      Private Sub New()
  19.      End Sub
  20.  
  21.      Public Shared Function GetPublicIp() As String
  22.          Dim req As WebRequest = WebRequest.Create("http://checkip.dyndns.org/")
  23.          Using resp As WebResponse = req.GetResponse()
  24.              Using sr As New StreamReader(resp.GetResponseStream)
  25.                  Dim html As XDocument = XDocument.Parse(sr.ReadToEnd())
  26.                  Dim body As String = html.<html>.<body>.Value
  27.                  Return body.Substring(body.LastIndexOf(" ")).Trim()
  28.              End Using
  29.          End Using
  30.      End Function
  31.  
  32.      Public Shared Sub SendGoogleMail(cred As NetworkCredential, [to] As String, subject As String, body As String)
  33.          Using msg As New MailMessage(cred.UserName, [to], subject, body)
  34.              Using client As New SmtpClient()
  35.                  With client
  36.                      .Host = "smtp.gmail.com"
  37.                      .Port = 587
  38.                      .EnableSsl = True
  39.                      .Credentials = cred
  40.                      .DeliveryMethod = SmtpDeliveryMethod.Network
  41.                      .Timeout = CInt(TimeSpan.FromSeconds(60).TotalMilliseconds)
  42.                  End With
  43.                  client.Send(msg)
  44.              End Using
  45.          End Using
  46.      End Sub
  47.  
  48.      Public Shared Sub SendOutlookMail(cred As NetworkCredential, [to] As String, subject As String, body As String)
  49.          Using msg As New MailMessage(cred.UserName, [to], subject, body)
  50.              Using client As New SmtpClient()
  51.                  With client
  52.                      .Host = "smtp.live.com"
  53.                      .Port = 587
  54.                      .EnableSsl = True
  55.                      .Credentials = cred
  56.                      .DeliveryMethod = SmtpDeliveryMethod.Network
  57.                      .Timeout = CInt(TimeSpan.FromSeconds(60).TotalMilliseconds)
  58.                  End With
  59.                  client.Send(msg)
  60.              End Using
  61.          End Using
  62.      End Sub
  63.  
  64.    End Class
  65.  
  66. End Namespace
  67. '@
  68. $vbType = Add-Type -TypeDefinition $vbCode `
  69.                   -CodeDomProvider (New-Object Microsoft.VisualBasic.VBCodeProvider) `
  70.                   -PassThru `
  71.                   -ReferencedAssemblies "Microsoft.VisualBasic.dll", `
  72.                                         "System.dll", "System.IO", "System.Net", `
  73.                                         "System.Xml", "System.Xml.Linq" `
  74.                                         | where { $_.IsPublic }
  75.  
  76. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
  77.  
  78. $publicIp = [ElektroKitFramework.NetworkUtil]::GetPublicIp()
  79. Write-Host ( [System.String]::Format("My Public IP Address Is: {0}", $publicIp) )
  80.  
  81. $cred   = New-Object -TypeName System.Net.NetworkCredential -ArgumentList "username@gmail.com", "password"
  82. $mailTo = "destination@server.com"
  83. Write-Host ( [System.String]::Format("Sending Mail From: ""{0}"" To: ""{1}""", $cred.UserName, $mailTo) )
  84.  
  85. try {
  86.  [ElektroKitFramework.NetworkUtil]::SendGoogleMail( $cred, $mailTo, "My Public Ip Address", $publicIp )
  87.  # [ElektroKitFramework.NetworkUtil]::SendOutlookMail( $cred, $mailTo, "My Public Ip Address", $publicIp )
  88.  Write-Host "Mail sent successfully."
  89.  
  90. } catch {
  91.  Write-Host ( [System.String]::Format("An Exception Occured With Message: ""{0}""", $_.Exception.Message) )
  92.  
  93. }
  94.  
  95. Exit(0)

Resultado de ejecución:


PD: Si usas otro servidor SMTP tan solo tienes que cojer el método SendGoogleMail o SendOutlookMail y adaptar/modificar los parámetros de configuración...

Saludos.
« Última modificación: 27 Septiembre 2017, 14:20 pm por Eleкtro » En línea



warcry.


Desconectado Desconectado

Mensajes: 1.004


Ver Perfil
Re: hay algún script con bat que pueda buscar y mandar la dirección IP
« Respuesta #4 en: 27 Septiembre 2017, 13:55 pm »

respuesta irrefutable e impoluta @Elektro

 ;-) ;-) ;-)
En línea

HE SIDO BANEADO --- UN PLACER ---- SALUDOS
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines