私は以前、同様のハックを使用して、ICQ サーバー側の検証を回避していました。招待されていないアルファ/ベータ ビルドをテストしたい場合に非常に便利です :-)
Delphi に同梱されている Indy には、ドメインの IP を取得するために使用できるTIdStack.ResolveHost()
関数と別のコンポーネントがあります。TIdDNSResolver
またTIdStack.LocalAddresses
、ローカル IPv4 アドレスを取得するプロパティもあります。または、Windows の関数のように、ソケット APIgethostbyname()
またはgetaddrinfo()
関数をプラットフォーム固有の API と共に直接使用して、ローカル IP を列挙することもできGetAdaptersAddresses()
ます。
ただし、PHP スクリプトで単純にプレーン テキストをアプリにエコー バックさせるのではなく、IP を確認する必要のないはるかに安全なオプションは、アプリで動的に生成されたナンス値を作成し、それを PHP スクリプトに送信することです。次に、スクリプトにそれを処理させ、必要に応じて、あなただけが知っているアルゴリズムを使用してハッシュし、アプリに送り返します。アプリは同じアルゴリズムを実行し、結果を比較できます。誰かが時間を割いてアプリをリバース エンジニアリングしない限り、カスタム Xampp スクリプトでアルゴリズムを再現したり、その結果を偽造したりすることはできません。
SSL/TLS を使用してドメイン サーバーへの接続を暗号化し、アプリケーションが PHP スクリプトとデータを交換する前に検証できる SSL 証明書をドメイン サーバーに提供します。これだけ行うと、SSL/TLS によってドメインに接続されていることが確認されるため、引き続きプレーンテキストのエコーを使用できます。