IP adresa klienta   zodpovězená otázka

I/O operace

V aplikaci serveru mám nadefinováno:

NetListener = New Net.Sockets.TcpListener(System.Net.IPAdress.Any,Port)

Poté spustím čekání na požadavek připojení:

NetListener.Start()

Zajímalo by mne, jestli se dá nějakým způsobem zjistit IP adresa počítače, který se snaží připojit.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

a funguje vam pripojit sa na vzdialeny pc cez vonkajsiu ip napriklad 76.145.55.22 ? alebo iba 127.0.0.1 ako ked sa pripojite na svoj vlastny pc ?? ... zistit ip pc ktory sa pripaja napriklad z velkej britanie sa da tak ze do klienta pripises riadky nad kod cez ktory sa pripaja do serveru :

Dim Client1 As New Net.WebClient
Dim IPAdresa As String = Client1.DownloadString(http://www.whatismyip.com/automation/n09230945.asp)

timto stiahne client text zo stranky http://www.whatismyip.com/automation/n09... na ktorej je vypisana ip adresa pc ktory to stahuje - teda v stringu IPAdresa bude ip vzdialeneho pc ktory sa pripaja na server a uz staci len aby ten text poslal na server a ked ho server prijme (iba sprawu s jeho ip) tak vytvory novu formu s moznostou prijat a odmietnut podobne ako vo firewalloch :)

PS: ak ste nieco nepochopili staci mi napisat na mail [email protected] a ja sem prilepim cely zdrojovy kod :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To je při vší úctě pěkná blbost. Používání whatismyip.com pro zjišťování adresy v programu je blbost, ta stránka je určená pro uživatele, ale ne pro aplikace. Je to jako kdybyste jedl špagety robotickou rukou - jde to, ale je to hloupé, neefektivní a vyžaduje to spoustu prostředků, mimo jiné tu robotickou ruku. Navíc tím nezjistíte IP adresu počítače, který se k vám připojuje, ale IP adresu počítače, který tuhle stránku stahuje.

Odpověď na původní otázku je jednoduchá - IP adresu toho, kdo se k vám připojuje, zjistíte poté, co akceptujete socket nebo TcpClient a z vráceného socketu nebo TcpClienta se podíváte na vlastnost RemoteEndPoint.

http://msdn.microsoft.com/en-us/library/...

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

jasne je to asi podla vas blbe ak poznate lepsiu cestu , ja som to vyuzival pri inych programoch... ale ajtak mu to bude nanic lebo s Tcp.Listener sa na neho nepripoji nikto z dialky cez vonkajsiu ip akurat tak cez 127.0.0.1 a mozno to funguje aj na 192.x.x.x a v tom pripade by to bolo lepsie prekladat na username ako ip.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Co je zase tohle za nesmysl? Překládání username na IP? Doporučuji si přečíst něco o TCP/IP na wikipedii, máte v tom pěkný zmatek a motáte páté přes deváté.

To, jestli se na TcpListener někdo připojí z Internetu závisí na tom, jestli máte veřejnou IP adresu (s původním dotazem to ale nemá nic společného) a jestli máte připojení povolené na firewallu.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Podobně jako že Namespace = dvě třídy ve formuláři a jednu z nich lze spustit ve vláknu, perla za perlou...

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback