Moneybag Posted December 11, 2012 at 03:39 AM Report #486551 Posted December 11, 2012 at 03:39 AM Boas Tenho uma pequena aplicação que gostaria que mostra-se ao utilizador o seu ip externo, andei a pesquisar e sei que não existe nenhum comando para tal coisas é necessário um entidade exterior como um website para nos mostrar o ip. Então eu decidi criar um pagina web em branco em php com o seguinte codigo: $ip=@$REMOTE_ADDR; echo "<b>IP Address= $ip</b>"; agora não sei como fazer com que a aplicação saque essa informação do meu website e mostre ao utilizador qual o seu ip... alguém me poderia explicar sff
petvetbr Posted December 11, 2012 at 10:41 AM Report #486563 Posted December 11, 2012 at 10:41 AM Utilize a classe WebClient do .net e use o método downloadString para obter o texto gerado pelo php. Aí é só processar a String. Fernando Lage Bastos - MCP/MCTS/MCPD
Gonka Posted December 11, 2012 at 10:48 AM Report #486567 Posted December 11, 2012 at 10:48 AM Primeiro atribui um ID a esse elemento que contém o IP. Depois em C# fazes isto: string url = "url onde está o IP"; WebClient wc = new WebClient(); HtmlDocument html_doc = new HtmlDocument(); string html_text = wc.DownloadString(new Uri(url)); html_doc.Write(html_text); Console.WriteLine(html_doc.GetElementById("myIP").InnerText); Não está testado. Espero que esteja correcto (:
Moneybag Posted December 11, 2012 at 09:18 PM Author Report #486706 Posted December 11, 2012 at 09:18 PM Gonka o teu codigo apresentava erro na linha 3 :/ o meu programa ja ta a funcionar utilizei o codigo abaixo: WebClient MyClient = new WebClient(); Stream MyStream = MyClient.OpenRead("http://www.meuwebsite.com/index.php"); StreamReader MyReader = new StreamReader(MyStream); localMachineIp = MyReader.ReadLine(); MyStream.Close(); e para o website fiz este: <?php $ip = getenv("REMOTE_ADDR") ; Echo $ip; ?>
Gonka Posted December 12, 2012 at 11:28 AM Report #486780 Posted December 12, 2012 at 11:28 AM (edited) Desculpa. De facto estava errado visto que o HtmlDocument é usado para abrir um WebBrowser dentro de um form. De qualquer das maneiras tens aqui uma solução mais elegante que usa o HtmlAgilityPack. No Package Manager Consoler fazes: PM> Install-Package HtmlAgilityPack Deixo aqui um exemplo de código que vai buscar o texto de um elemento do DOM da google.com: using System; using System.Net; using HtmlAgilityPack; namespace html_parser { class Program { static void Main(string[] args) { string url = "http://www.google.com"; WebClient wc = new WebClient(); HtmlDocument html_doc = new HtmlDocument(); var html_text = wc.DownloadString(new Uri(url)); html_doc.LoadHtml(html_text); Console.WriteLine(html_doc.GetElementbyId("gb_51").InnerText); Console.ReadKey(); } } } Edited December 12, 2012 at 11:30 AM by Gonka
Moneybag Posted December 13, 2012 at 02:07 AM Author Report #486937 Posted December 13, 2012 at 02:07 AM obrigado 😉
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now