Esse topico descreve uma duvida respondida por mim no forum 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 modulo onde este representante tem a opcao de aceitar a comissao ou nao. Nesta acao, alem de outras informacoes, eu preciso pegar tambem o IP da maquina do representante e gravar no meu banco. Como eu faco isso???"Vamos la:Pra se obter o IP de alguem que esta acessando sua aplicacao pela Internet , basta apenas recuperar o valor pela seguinte variavel de Servidor:String IP = Request.UserHostAddress;Porem, se sua necessidade e pegar o IP das maquinas ques estao em uma rede e estao acessando sua aplicacao, 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 maquina local: " + strHostName);}else{strHostName = args[0];}// Usando o hostname, pega o IP na listaIPHostEntry 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=21Outra sugestao: http://www.codeproject.com/KB/IP/ListNetworkComputers.aspxAbracos Em diversas situacoes nos vemos obrigados a usar uma funcao que verificar se um determinado registro existe antes de decidir o que sera feito. Um exemplo tipido e quando queremos determinar se vamos atualizar ou criar um registro. E ai que entra a funcao EXISTS.Exemplo: if EXISTS (select *from authorswhere au_id = '172-32-1176')Print 'O registro ja existe - Executaremos um Update'ELSEPrint 'O registro nao existe - Vamos executar um Insert'A funcao recebe um unico parametro, que e uma instrucao SQL. Se para a instrucao SQL passada registros existirem, a funcao ira retornar TRUE, do contario, retornara FALSE. A vantagem do uso do EXISTS e que assim que ele encontra o primeiro registro, o processo e interrompido, salvando entao recursos do servidor SQL, embora se a pesquisa estiver sendo feita em cima de uma PRIMARY KEY, a diferenca nao seja muito grande entre um e outro. Entretanto, havera um enorme ganho de performance se voce estiver fazendo busca por qualquer outro campo nao indexado.Observer esses dois exemplos:if exists (select *from authorswhere state = 'ca')Print 'Registro Existe'ELSEPrint 'Registro nao existe'if (select count(*)from authorswhere state = '172-32-1176') > 0Print 'Registro existe'ELSEPrint 'Registro nao existe'Examinando os bancos default do MS-SQL SERVER, na database "pubs", tabela "authors" existem somente 23 registros. Mesmo com tao poucos registros, a query com o IF EXISTS e executada 4 vezes mais rapido do que um "select count". Isso porque a query para a sua execucao assim que o primeiro registro e encontrado. Ja no segundo exemplo, todos os registros que atenderem a condicao serao processados (retornados).E isso ai :) Eu costumo dizer que fazer coisas com o .NET framework e igual ao neston. Existemmil maneiras de fazer. Invente uma.O que vou descrever e uma das varias maneira que a gente pode fazer para se gerenciarservicos com o .NET. Sao varias as situacoes onde e necessario inicar ou parar umservico de acordo com a necessidade de uma aplicacao.