logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak pobrać IP hosta z dynamicznym DNS w Borland Builder Personal 6?

Nemo 01 Lip 2007 16:06 2237 5
REKLAMA
  • #1 4038582
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Do dyspozycji jest Borland Builder Personal 6 i jego komponenty sieciowe.

    Problem:

    W programie jest potrzeba pobrania adresu IP komputera stojącego gdzieś w Internecie. Komputer ten jest identyfikowany adresem dynamicznym (Neostrada), zaś ścieżkę do niego wskazuje adres: jakis_host.no-ip.org.

    Jak pobrać konkretny adres IP tego komputera? Jaką metodą? Jakiego komponentu użyć?

    Komputer ten nie jest serwerem HTTP, ani żadnym innym. Ma reagować na połączenia korzystające z portu 60000 (przykładowo).

    Dalej. Jak utworzyć socket, który będzie się z tym zdalnym komputerem komunikował?

    Proszę o pomoc.

    Pozdrawiam.
  • REKLAMA
  • #2 4040352
    Songo
    Poziom 13  
    Posty: 37
    Pomógł: 4
    Ocena: 1
    na przyklad wysyłając ping pod adres symboliczny.
  • REKLAMA
  • #3 4042360
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Tyle, to ja wiem...

    Pytałem, jak to zrobić z poziomu aplikacji Buildera 6 i wykorzystać ten IP w programie. Na pewno jest to możliwe, tylko jak?

    Pozdrawiam.
  • REKLAMA
  • Pomocny post
    #4 4042847
    Akane
    Poziom 27  
    Posty: 638
    Pomógł: 144
    Ocena: 33
    hostent* host;
    host = gethostbyname("jakis_host.no-ip.org");
    if (host && (host->h_length > 0) && host->h_addr)
    {
    	DWORD IP = (DWORD)(host->h_addr);
    	MessageBox(0, inet_ntoa(*(in_addr*)&IP), 0, 0);
    }
  • REKLAMA
  • #5 4043132
    x3r
    Poziom 18  
    Posty: 126
    Pomógł: 32
    Ocena: 2
    Jak poprzednik napisał wystarczy gethostbyname() i troszke gimnastyki wskaźnikowej chociaż wydaje mi się że BCB powinien mieć coś takiego udostępnionego dla programisty w prostszej formie (wiecej nie pomogę bo nie kompiluje w borlandzie). Co do typu gniazda to ważne żebyś napisał co ta aplikacja będzie robić bez tego nie potrafię pomóc.

    pozdrawiam
  • #6 4046925
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Podany przez Akane kod znacząco rozjaśnił mi w głowie. Okazuje się, że tą samą funkcją można pobrać własny adres IP, a także adres zdalnego hosta. Wystarczy tylko zmienić dane.

    Wyprowadzony adres IP został skierowany do obiektu klasy TClientSocket i po podaniu portu transmisja została nawiązana. O to właśnie chodziło.

    Dzięki za pomoc.

    Pozdrawiam.

    PS. Skoro temat został wyczerpany, to można go zamknąć.
REKLAMA