Foro de elhacker.net

Comunicaciones => Redes => Mensaje iniciado por: eltincho en 26 Septiembre 2011, 15:16 pm



Título: Script para Server 2008 R2
Publicado por: eltincho en 26 Septiembre 2011, 15:16 pm
Buenos días a todos,

Estaría necesitando saber si se puede hacer un script para enviar un correo en el momento que cambie la ip de un Server 2008 R2.

Si alguien tiene algo que sirva les agradecería lo envíen,

Desde ya muchas gracias!

Saludos,


Título: Re: Script para Server 2008 R2
Publicado por: madpitbull_99 en 26 Septiembre 2011, 21:28 pm
Puedes probar herramientas como IP Watcher (http://www.gearboxcomputers.com/products/ip-watcher/) o IP Mailer (http://ipmailer.wappu.tv/download.html) aunque lo más sencillo sería programarlo por tu cuenta.

Con PowerShell también puedes hacerlo, pero tal vez se te hará algo complicado.

Código
  1. ## Function to retrieve external IP address.
  2. ## the external address is retrieved from the
  3. ## title header of the webpage "www.myip.dk"
  4.  
  5. function Get-ExternalIP {
  6.    $source = "http://www.myip.dk"
  7.    $client = new-object System.Net.WebClient
  8.    $webpage = $client.downloadString($source)
  9.    $lines = $webpage.split("`n")
  10.    foreach ($line in $lines) {
  11.        if ($line.contains("</title>")) {
  12.            $ip = $line.replace("    <title>Your IP address is: ", "").replace("</title>","")
  13.        }
  14.    }
  15.    $obj = New-Object Object
  16.    $obj | Add-Member Noteproperty externalIP -value $ip
  17.    $obj
  18. }

Una opción más sencilla sería programar un script sencillo en PHP, Perl o Python que consulta una página externa y si la IP ha cambiado que
envíe el correo.

PD: En toda mi respuesta me he estado refiriendo a la IP externa.


Título: Re: Script para Server 2008 R2
Publicado por: eltincho en 27 Septiembre 2011, 00:05 am
Muchas gracias por tu respuesta la verdad pensé que nadie iba a responder jeje.
El tema es que es una ip interna y no tengo una pagina externa a la cual consultar.. quizás haya algún script sencillo para esto pero no se como hacerlo, tendrás idea???
igualmente estaré viendo los programas que enviaste para ver si sirven en lo que estoy buscando,

Muchas gracias nuevamente!


Título: Re: Script para Server 2008 R2
Publicado por: lagun en 27 Septiembre 2011, 09:26 am
Ahí va una pregunta tonta, ¿qué lenguage es ese?


Título: Re: Script para Server 2008 R2
Publicado por: madpitbull_99 en 27 Septiembre 2011, 10:26 am
Es PowerShell.



Para la IP local es aún más fácil, no tienes que consultar ningún sitio externo.

Código
  1. Function Get-IPData {
  2. #this function assumes admin credentials
  3. [cmdletBinding()]
  4. Param(
  5.    [Parameter(Position=0,ValueFromPipeline=$True,ValueFromPipelineByPropertyName=$True)]
  6.    [ValidateNotNullOrEmpty()]
  7.    [Alias("name")]
  8.    [string[]]$computername=$env:computername
  9. )
  10.  
  11. Process {
  12.    ForEach ($computer in $computername) {
  13.        Write-Verbose "Querying $($computer.ToUpper())"
  14.        Try
  15.        {
  16.            #get NICS that are IP and DHCP enabled
  17.            Get-WMIObject -Class win32_networkadapterconfiguration -computername $Computer `
  18.            -Filter "IPEnabled='TRUE' AND DHCPEnabled='TRUE'" -ErrorAction "Stop" |
  19.            Select Description,DNSHostname,
  20.            @{Name="IPAddress";Expression={$_.IPAddress[0]}},
  21.            @{Name="SubnetMask";Expression={$_.IPSubnet[0]}},
  22.            @{Name="DefaultGateway";Expression={$_.DefaultIPGateway[0]}},DNSDomain,
  23.            @{Name="PrimaryDNS";Expression={$_.DNSServerSearchOrder[0]}},DHCPServer,
  24.            @{Name="DHCPLease";Expression={$_.ConvertToDateTime($_.DHCPLeaseObtained)}},
  25.            @{Name="DHCPExpires";Expression={$_.ConvertToDateTime($_.DHCPLeaseExpires)}},
  26.            @{Name="DHCPTimeToLive";Expression={ $_.ConvertToDateTime($_.DHCPLeaseExpires) - (Get-Date)}},
  27.            MACAddress,
  28.            @{Name="Speed";Expression={
  29.            #use an Associators Of query to get the NIC
  30.              $nic=Get-WmiObject -query "associators of {Win32_NetworkAdapterConfiguration.Index=$($_.index)}" -computername $computer
  31.              $nic.Speed
  32.              }}
  33.        } #close Try
  34.        Catch
  35.        {
  36.            Write-Warning "Failed to retrieve IP configuration from $($computer.ToUpper())"
  37.            Write-Warning $_.Exception.Message
  38.  
  39.        } #close Catch
  40.    } #close ForEach
  41. } #close Process
  42. } #end function

_Get IP Data (http://jdhitsolutions.com/blog/2011/03/get-ip-data/)
_Getting Assigned IP Addresses (http://powershell.com/cs/blogs/tips/archive/2010/04/20/getting-assigned-ip-addresses.aspx)
_how to retrieve your ip address with powershell... (http://marcusoh.blogspot.com/2008/04/how-to-retrieve-your-ip-address-with.html)
_PowerShell Get-Ipconfig function (http://thepowershellguy.com/blogs/posh/archive/2008/06/30/powershell-get-ipconfig-function.aspx)
_Get-IPAddress.ps1 (http://pshscripts.blogspot.com/2009/01/get-ipaddressps1.html)



Título: Re: Script para Server 2008 R2
Publicado por: eltincho en 27 Septiembre 2011, 15:07 pm
OK muchísimas gracias, ahora una consulta mas, ya que necesito que en el momento que cambie la ip, envíe un correo a por ej pepe@gmail.com y no veo en el script un lugar para colocar la direccion de correo.. y por otra parte me corrijas en el procedimiento para ver si es correcto, entiendo que para poder ejecutar esto debo:

- Abrir PowerShell ISE, el editor de scripts de PowerShell

- Copio el script y guardo el archivo así como está.. que me quedaría un .ps1 (o debería cambiarle algo??)

- y luego debería de poner algo en las tareas programadas que lo ejecute cada x tiempo.

¿Es así? desde ya te agradezco nuevamente y si en algún momento necesitas algo de exchange 2010 o Xendesktop de citrix a las ordenes jejeje es con lo que podría llegar a ayudar un poco..