2012-11-14 20 views
5

Mam program, w którym sprawdza plik php na serwerze sieci Web, aby sprawdzić, czy użytkownik jest zweryfikowany. Pliki php są uruchamiane przez DB, a sprawdzenia i echa są "zweryfikowane", jeśli są.Delphi XE2 - Jak uzyskać adres IP określonej strony internetowej?

Teraz ludzie z łatwością ominą system weryfikacji, instalując Xampp, kierując mój serwer do 127.0.0.1 w jego pliku hosts, a następnie ustawiając skrypt, który sprawdził echa.

Chcę móc sprawdzić adres IP mojej domeny, aby sprawdzić, czy jest routing do 127.0.0.1.

Jak mam rozwiązać IP adres domeny poprzez delphi?

+4

Oczywiście nie przeczytałeś poprawnie pytania. –

+0

@WarrenP numeryczne IP może zostać przekierowane w pliku hosts –

Odpowiedz

14

Użyłem podobnego hacka, aby obejść weryfikacje po stronie serwera ICQ. Bardzo wygodne, gdy chciałem przetestować alfa/beta buduje, że nie został zaproszony do :-)

Indy, których statki z Delphi, ma TIdStack.ResolveHost() funkcji oraz oddzielny komponent TIdDNSResolver, który może być używany zarówno aby uzyskać Adres IP domeny. Ma również właściwość TIdStack.LocalAddresses, aby ponownie uzyskać lokalne adresy IPv4. Możesz też bezpośrednio użyć funkcji API gniazda gethostbyname() lub getaddrinfo(), wraz z interfejsami API specyficznymi dla platformy, aby wyliczyć lokalne adresy IP, takie jak funkcja GetAdaptersAddresses() w systemie Windows.

Jednak zamiast mieć skrypt PHP po prostu echo zwykłego tekstu z powrotem do twojej aplikacji, znacznie bezpieczniejszą opcją, która nie wymaga od ciebie weryfikacji IP jest to, że twoja aplikacja tworzy dynamicznie generowaną wartość i wysyła ją do skrypt PHP, następnie skrypt powinien go przetwarzać, mieszać, w razie potrzeby za pomocą algorytmu, który tylko ty znasz, a następnie wysłać go z powrotem do aplikacji. Aplikacja może wykonać ten sam algorytm i porównać wyniki. Jeśli ktoś nie poświęci czasu na inżynierię wsteczną aplikacji, nie będzie w stanie odtworzyć algorytmu ani sfałszować jego wyników za pomocą niestandardowych skryptów Xampp.

Jeszcze lepiej, użyj protokołu SSL/TLS do zaszyfrowania połączenia z serwerem domeny i daj swojemu serwerowi domenowemu certyfikat SSL, który aplikacja może zweryfikować przed wymianą jakichkolwiek danych ze skryptem PHP. Jeśli zrobisz tylko tyle, możesz dalej używać echa tekstowego, ponieważ SSL/TLS potwierdzi, że jesteś połączony z Twoją domeną.

+0

+1 dla pomysłu SSL/certyfikatu – Remko

Powiązane problemy