sexta-feira, 8 de fevereiro de 2008

Recuperando IP da rede com C# ASP .NET

Esse tópico descreve uma dúvida respondida por mim no fórum de ASP .NET da MSDN Brasil

"Bom dia.

Eu tenho um sistema em ASP.NET 2.0 usando o C# onde os representantes passam pedidos pela web.
Existe um módulo onde este representante tem a opção de aceitar a comissão ou não. Nesta ação, além de outras informações, eu preciso pegar também o IP da máquina do representante e gravar no meu banco. Como eu faço isso???"


Vamos lá:

Pra se obter o IP de alguém que está acessando sua aplicação pela Internet , basta apenas recuperar o valor pela seguinte variável de Servidor:

String IP = Request.UserHostAddress;

Porém, se sua necessidade é pegar o IP das máquinas ques estão em uma rede e estão acessando sua aplicação, podemos fazer o seguinte:

using System;
using System.Net;

namespace Rede

{

public class DNSUtility
{
public static int Main (string [] args)
{
String strHostName = String.Empty;

if (args.Length == 0)
{

// Pega o Host name.
strHostName = Dns.GetHostName ();
Console.WriteLine ("Nome da máquina local: " + strHostName);
}
else
{
strHostName = args[0];
}
// Usando o hostname, pega o IP na lista
IPHostEntry ipEntry = Dns.GetHostByName (strHostName);
IPAddress [] addr = ipEntry.AddressList;

for (int i = 0; i <>
{
Console.WriteLine ("IP {0}: {1} ", i, addr[i].ToString ());
}

Console.Read();
return 0;
}
}

}

Link para o post: http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=2376723&SiteID=21

Outra sugestão: http://www.codeproject.com/KB/IP/ListNetworkComputers.aspx

Abraços

Nenhum comentário: