Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#1721
Scripting / Re: Crear programas .bat
27 Septiembre 2017, 19:34 PM

Basicamente:
Código (dos) [Seleccionar]
@Echo OFF & (CHCP 1252)1>Nul

set "targets=www.google.com; foro.elhacker.net"

For %%# In (%targets%) Do (
   Echo: Pinging to: "%%~#"...
   (Ping.exe "%%~#")>>".\Ping.log"
)

Pause & Exit


PD: Adáptalo a tus necesidades. Bien puedes usar un búcle de tipo FOR /F para leer un archivo de texto que contenga las direcciones IPv4 si así lo deseas.

Saludos.
#1722
Cita de: regalosorpresa en 24 Septiembre 2017, 11:55 AMmi duda es si hay alguna aplicacion o software para windows que no haya que ir uno por uno y actualize todo a la vez.

La aplicación que estás buscando se llama SUMO (Software Update Monitor).




Voy a describir brevemente mi escenario: soy un usuario que hace una década atrás empezó a crear una colección privada de cientos de aplicaciones de todas las temáticas, cada poco tiempo voy descubriendo programas nuevos, instalando, desinstalando (todo de forma segura enuna V.M), comparando beneficios y desventajas con otras aplicaciones, y el momento más fastidioso por el que todos debemos pasar: buscar actualizaciones de las aplicaciones... de muuuchas aplicaciones.

SUMO acelera de forma mágica el tedioso procedimiento de búsqueda y descarga de actualizaciones de programas instalados en el PC. No se limita a buscar aplicaciones registradas en las secciones de software instalado en el registro de Windows (como hacen el resto de aplicaciones alternativas a SUMO), sino que también puede escanear todo archivo executable del disco, y eso lo hace capaz de detectar programas portables que no necesiten instalación, como 7Zip, Media Player Classic, o MediaInfo (en sus versiones portables claro está). Es una auténtica maravilla de software. Hay otras aplicaciones similares a SUMO, pero por experiencia puedo asegurar que SUMO le da mil patadas a todas las demás en lo que se refiere a la detección de software "instalado" en el sistema.
#1723
Cita de: warcry. en 23 Septiembre 2017, 12:33 PMa mi lo que me interesa es saber como vas a conseguir que los gigantes, hotmail, gmail, etc no te bloqueen los correos o los marquen como spam

Lo del bloqueo o descarte, no se sabría hasta probar a enviar los correos y ver lo que ocurre, y entonces intentar perfeccionar alguna técnica que estuviese dentro de lo legal (ej. un algoritmo para crear cuentas aleatorias para poder seguir enviando el resto de emails, digo yo que eso será legal, habría que investigarlo, toy hablando por hablar).

Lo de que los emails llegasen siempre a la bandeja de Spam sería algo que ya estaría previsto y muy asumido, más leyendo que condenaron a un individuo en España por utilizar ciertos métodos conocidos para evadir los filtros de spam ...ahí si que no me la jugaría, que se marque como spam daría bastante igual puesto que...imagina hipoteticamente que estuviesemos hablando de una base de datos de +1.000 millones de direcciones de e-mail sin duplicados y verificados (existentes), entonces digo yo que que unos cuantos millones de usuarios de esa bd si que revisarían el spam de vez en cuando, y eso se consideraría un resultado exitoso.

..todo esto es un "suponer", ¿vale?, solo quería saber si era legal o no.




Cita de: #!drvy en 22 Septiembre 2017, 22:04 PM
Si. El propietario de dicho correo NO ha dado su consentimiento para recibir dicho email Y tampoco ha dado su consentimiento para que almacenes su correo en un fichero/base de datos de tu propiedad.

Incumples 2 leyes españolas. Además de otra que te obliga a notificar a la AEPD la tenencia de una base de datos que contiene datos personales (si, el correo electrónico se considera un dato personal en España).

Para consultas:
- Ley Orgánica de Protección de Datos (LOPD)
- Ley de Servicios de la Sociedad de la Información y del Comercio Electrónico (LSSI-CE)

Sé que tienes buen conocimiento en leyes de seguridad informática, así que te concedo total creedibilidad. Gracias por la ayuda.

Pero me parece algo bastante increible que enviar un simple e-mail de propaganda a una dirección de correo "aleatoria" sea algo ilegal, pf, vaya tela con la ley Española... mucha ley de seguridad informática, y poca seguridad en las calles. Algunas leyes como ésta parece que solo existan para beneficiar a los peces grandes, como siempre, y marginar al pequeño emprendedor que desea promocionarse de forma independiente enviando un puñetero email de publicidad...

Doy el tema por solucionado. Saludos.

EDITO: Espera, ¿tienes idea de si existe alguna forma legal de escabullirse de esto? (que no sea contratar los servicios de una compañia de email marketing, claro, no soy millonario), por ejemplo si el individuo que se dispone a enviar el email utilizase una VPN de otro pais junto a un SMTP de otro pais (¿@mail.ru?) en donde esta ley no existiese, ¿la ley española seguiría afectando?....pf, supongo que si, por que el lugar de origen del envio seguiría siendo España de algún modo, no sé, pero por preguntar no pierdo nada...

#1724
Cita de: **Aincrad** en 23 Septiembre 2017, 00:37 AMcode para obtener la ip.

Código (bash) [Seleccionar]

@echo off
ipconfig >> ip.txt
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 (ini) [Seleccionar]
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# ElektroKit Framework for .NET can be bought here:                     #
#                                                                       #
# https://codecanyon.net/item/elektrokit-class-library-for-net/19260282 #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

$vbCode = @'
Imports System
Imports System.IO
Imports System.Net
Imports System.Net.Mail
Imports System.Xml.Linq

Namespace ElektroKitFramework

   Public NotInheritable Class NetworkUtil

     Private Sub New()
     End Sub

     Public Shared Function GetPublicIp() As String
         Dim req As WebRequest = WebRequest.Create("http://checkip.dyndns.org/")
         Using resp As WebResponse = req.GetResponse()
             Using sr As New StreamReader(resp.GetResponseStream)
                 Dim html As XDocument = XDocument.Parse(sr.ReadToEnd())
                 Dim body As String = html.<html>.<body>.Value
                 Return body.Substring(body.LastIndexOf(" ")).Trim()
             End Using
         End Using
     End Function

     Public Shared Sub SendGoogleMail(cred As NetworkCredential, [to] As String, subject As String, body As String)
         Using msg As New MailMessage(cred.UserName, [to], subject, body)
             Using client As New SmtpClient()
                 With client
                     .Host = "smtp.gmail.com"
                     .Port = 587
                     .EnableSsl = True
                     .Credentials = cred
                     .DeliveryMethod = SmtpDeliveryMethod.Network
                     .Timeout = CInt(TimeSpan.FromSeconds(60).TotalMilliseconds)
                 End With
                 client.Send(msg)
             End Using
         End Using
     End Sub

     Public Shared Sub SendOutlookMail(cred As NetworkCredential, [to] As String, subject As String, body As String)
         Using msg As New MailMessage(cred.UserName, [to], subject, body)
             Using client As New SmtpClient()
                 With client
                     .Host = "smtp.live.com"
                     .Port = 587
                     .EnableSsl = True
                     .Credentials = cred
                     .DeliveryMethod = SmtpDeliveryMethod.Network
                     .Timeout = CInt(TimeSpan.FromSeconds(60).TotalMilliseconds)
                 End With
                 client.Send(msg)
             End Using
         End Using
     End Sub

   End Class

End Namespace
'@
$vbType = Add-Type -TypeDefinition $vbCode `
                  -CodeDomProvider (New-Object Microsoft.VisualBasic.VBCodeProvider) `
                  -PassThru `
                  -ReferencedAssemblies "Microsoft.VisualBasic.dll", `
                                        "System.dll", "System.IO", "System.Net", `
                                        "System.Xml", "System.Xml.Linq" `
                                        | where { $_.IsPublic }

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

$publicIp = [ElektroKitFramework.NetworkUtil]::GetPublicIp()
Write-Host ( [System.String]::Format("My Public IP Address Is: {0}", $publicIp) )

$cred   = New-Object -TypeName System.Net.NetworkCredential -ArgumentList "username@gmail.com", "password"
$mailTo = "destination@server.com"
Write-Host ( [System.String]::Format("Sending Mail From: ""{0}"" To: ""{1}""", $cred.UserName, $mailTo) )

try {
 [ElektroKitFramework.NetworkUtil]::SendGoogleMail( $cred, $mailTo, "My Public Ip Address", $publicIp )
 # [ElektroKitFramework.NetworkUtil]::SendOutlookMail( $cred, $mailTo, "My Public Ip Address", $publicIp )
 Write-Host "Mail sent successfully."

} catch {
 Write-Host ( [System.String]::Format("An Exception Occured With Message: ""{0}""", $_.Exception.Message) )

}

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.
#1725
Scripting / Re: el signo =
27 Septiembre 2017, 11:52 AM
Hola. Batch no está pensado como un lenguaje (de hecho tecnicamente no es un lenguaje de programación) para parsear archivos de texto. En tu script, estás iterando linea por linea y tratando de realizar el reemplazamiento de string en cada una de las lineas, aparte de eso en lugar de escribir de una sola vez el archivo, estás adjuntando la última linea iterada al final del archivo de texto, todo esto en términos de rendimiento/velocidad de ejecución deja mucho que desear, y el agravío lo notarías si se tratase de un archivo con varios miles de lineas...

En fin, a donde quiero llegar es que Batch está desfasado para este tipo de tareas, y hay que ir inculcando a las nuevas generaciones la forma más óptima de resolver ciertos problemas, por eso en lugar de Batch yo te sugiero utilizar PowerShell.

La solución a tu problema:

script.ps1
Código (ini) [Seleccionar]
[System.Reflection.Assembly]::LoadWithPartialName("System.Text.dll")

$srcFilePath  = ".\Iput Text.txt"
$dstFilePath  = ".\Output Text.txt"
$textEncoding = [System.Text.Encoding]::Default

$filecontent  = [System.IO.File]::ReadAllText($srcFilePath, $textEncoding)
$replacedText = ($filecontent).Replace("Perl=", "HT")

[System.IO.File]::WriteAllText($dstFilePath, $replacedText, $textEncoding)

Write-Host $replacedText
Exit(0)


Saludos.
#1726
Windows / Re: ayudenme porfavor
27 Septiembre 2017, 11:21 AM
Cita de: irvingdesde en 26 Septiembre 2017, 21:08 PMque otras medidas tomar, con que otro método ellos pueden detectar que ya tengo una cuenta?

Maneras hay muchas, desde un identificador de hardware (HWID) hasta un simple valor en el registro de Windows o un archivo creado con tal propósito.

Prueba a iniciar el programa desde una máquina virtual creada en VMWare Player o VirtualBox... preferíblemente deberías usar VMWare para minimizar la posibilidad de encontrarte un bug comparado con la infinidad de bugs que te puedes encontrar en VirtualBox. También puedes probar cualquier sandbox más enfocado a la virtualización/aislamiento de software como Sanboxie.

Saludos.
#1727
Microsoft Visual Studio Code sería otra opción de "IDE":




Si la estética es lo que más te importa entonces bajo mi punto de vista personal VS Code sería la mejor elección, mejor que el editor de texto o " "IDE" " Sublmie Text... ya que además le supera a éste por goleada en la sofisticación de características tales como el análisis sintáctico y semántico de código con resaltado de sintaxis (Microsoft Roslyn), autocompletado de código y documentación/descripciones de miembros en tiempo real (Microsoft IntelliSense), y depuración de código (VS Code Debug Protocol).

PD: Y si, se puede usar en Linux. Mucha gente a día de hoy sigue sin saberlo... personas que están acostumbradas a lo habitual no saben lo que se están perdiendo al desechar la calidad y los beneficios de la marca Microsoft. :P

Saludos.
#1728
.NET (C#, VB.NET, ASP) / Re: ayuda,compilar programa
26 Septiembre 2017, 09:33 AM
Hola. Localiza un archivo con extensión .sln o .csproj (en ese orden), son los archivos de solución y proyecto de Visual Studio.

Saludos.
#1730
Cita de: tincopasan en 24 Septiembre 2017, 09:21 AM
Gracias por el dato Elektro uso opencv en python y no conocia la alternativa para .net

Pues ahora me entero que también programas en .NET :P, a ver si te vemos pronto ayudando a usuarios necesitados por este subforo.

Por si os sirve a los dos: según todo lo que leí, parece ser que Emgu CV es el wrapper más popular, actualizado y estable, y dispone de buena documentación XML:

Y varios samples para C# y VB.NET:

Saludos.