Miten winsockilla saisi oman tietokoneen ip selville? Kieli on c++.
Kelpaaks joku delphi-esimerkki? http://www.delphifaq.com/faq/delphi_windows_API/
Kiitos vaan!!!!!!
Jos on ite serveri ja toine on clientti. Ni mite saa clientin ip tietoo
Jos kyse on TCP:stä, sen saa selville soketista kun on hyväksynyt yhteyden. Jos UDP, sen saa selville pakettia vastaanottaessa.
TCP-soketti on kyseessä. Osaatko kertoa kuinka sen ip saa selville soketista? :o
Sanoinkin väärin, accept-funktio antaa takaisin tiedon vastapäästä, en tiedä sitten Delphistä miten menee, normaalisti on näin:
SOCKET client; sockaddr_in from; int fromlen=sizeof(from); client=accept(server, (struct sockaddr*)&from,&fromlen);
Ja from sisältää sen jälkeen vastapään tiedot.
Kieli on siis c++. Jotain esimerkkiä miten tuosta form:ista kaivetaan ne tiedot?
Kun kyseessä on struct sockaddr_in niin sieltä löytyypi sin_addr, joka on tyyppiä in_addr, näistä löytyy dokuja kyllä.
Ei löydy kuukkelil mitää selkeetä. Jos jollai on hyperlinkkiä jonnekin esimerkkiin niin olisi mukava jos pasteaisit sen tähän.
Ensimmäinen osuma oli varsin selkeä ohjesivu (ehkä jopa jonkin unixin man-sivu), joka kertoo kyseisen structin rakenteen ja funktiot, joilla siitä saa jotain irti.
// Mahtuu 4 numeroa ja 3 pistettä (123.123.123.123) sekä lopetus-0. Muista varoa ylivuotoja. char osoite[16]; strcpy(osoite, inet_ntoa(myaddr.sin_addr)); // Toinen tapa, C++:ssa tietenkin "parempi". std::string cxx_osoite; cxx_osoite = inet_ntoa(myaddr.sin_addr);
http://retran.com/beej/inet_ntoaman.html
Winsockin pitäisi olla melko yhteensopiva tällaisissa.
Aika jännä ip minulla: 0.0.0.0 . Tai sitten olen tehnyt jotain väärin :|
Osaako joku auttaa mite sen sais näyttämään oikein sen ip? :o
Haa, iipeen saa jos on ite clientti mutta toisinpäin ei onnistu? Siis miten saisi clientin ip jos on itse serveri? :o
Aihe on jo aika vanha, joten et voi enää vastata siihen.