問題タブ [inetaddress]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
10 に答える
36849 参照

java - Java:intをInetAddressに変換します

ネットワークバイトオーダーのIPアドレスを含むがありint、これをオブジェクトに変換したいと思いInetAddressます。をInetAddressとるコンストラクターがあるようですが、を最初byte[]に変換する必要がありますか、それとも別の方法がありますか?intbyte[]

0 投票する
5 に答える
21016 参照

java - Javaで文字列をInetaddressに変換する簡単な方法はありますか?

文字列を に変換しようとしていますInetaddress。ホスト名を解決しようとしていません。文字列は ipv4 アドレスです。機能しますInetAddress.getByName(String host)か?または、手動で解析する必要がありますか?

0 投票する
1 に答える
469 参照

java - YahooIPアドレスの取得が機能しない

JavaのInetAddressクラスを使用してYahooIPアドレスを取得します。yahoo.comのIPアドレスの結果は、WebブラウザのURLで指定されている間は機能しません。

結果は次のように表示されます。アドレス=www.yahoo.com/67.195.160.76アドレス=www.yahoo.com/69.147.125.65

これらのIPをブラウザのURL(つまり、 http: //67.195.160.76)に入力すると、ブラウザに「必要なURLが見つかりません」と表示されます。

その問題は何ですか。Javaプログラムによって生成された結果は間違っていますか?

0 投票する
3 に答える
7431 参照

java - Javaクラスをそのサブクラスの1つ(SocketAddressおよびInetSocketAddress)に変換する方法

ソケット接続のIPを文字列形式で取得しようとしています。

受信したメッセージのを返すフレームワークを使用していSocketAddressます。どうすればそれをInetSocketAddressまたはに変換できInetAddressますか?

0 投票する
2 に答える
5928 参照

java - InetAddress の使用を避ける - ネットワーク バイト順で未加工の IP アドレスを取得する

Google App Engine で MaxMind GeoLite Country データベースを使用しようとしています。ただし、App Engine では使用できない InetAddress クラスに依存しているため、Java API を機能させるのに苦労しています。

ただし、特定のホスト名の IP を決定するために InetAddress クラスのみを使用しているように見えるため、簡単な回避策があるかどうかはわかりません。私の場合、ホスト名はとにかく常に IP です。

私が必要としているのは、文字列として表される IP アドレスをネットワーク バイト オーダーのバイト配列 (InetAddress クラスの addr.getAddress() メソッドが提供する) に変換する方法です。

これは現在の API が使用するコードです。InetAddress へのすべての参照を削除する方法を見つける必要があります。

御時間ありがとうございます。

0 投票する
2 に答える
5900 参照

java - Java の isReachable は、想定どおりに機能していないようです。

私は Clojure を使用していますが、Java を読むことができるので、これは Clojure 固有の質問ではありません。これはJavaからは機能していないようです。

isReachable を使用して、ちょっとした「ping」機能を実装しようとしています。私が使用しているコードは次のとおりです。

私の親友によってJavaに翻訳されました:

これらは両方とも false を返します。私は間違ったことをしているに違いないと思いますが、Google の調査では別のことがわかりました。私は混乱しています!

0 投票する
2 に答える
6283 参照

sql-server - SQL Server の単一の列に IPv4 または IPv6 の両方を格納する方法は?

またはを使用する必要がありますbinary(16)varbinary(16)

getAddress()in java.net.InetAddress(Java) またはSystem.Net.IPAddress(C#) を使用してとbyte[]の両方の表現を取得できることはわかっています が、 ieを のフィールドに挿入する必要がある場合、パディングなどについて心配する必要がありますか?IPv4IPv6IPv4binary(4)binary(16)SQL Server

0 投票する
3 に答える
11010 参照

java - Inet4Address と Inet6Address の両方を同時に使用したい Java アプリケーション

ソケットを介して 2 つの別々のマシン上の 2 つの異なるサーバーに接続する必要がある Java アプリケーションがあります。一方のサーバーは IPv4 接続をリッスンするように構成され、もう一方のサーバーは IPv6 接続をリッスンするように構成されています。

ここで、「host1」は IPv4 接続をリッスンするサーバーのマシン名であり、「host2」は IPv6 接続をリッスンするサーバーのマシン名であるとします。次のように、各サーバーへのソケット接続を作成するにはInet4Address、「host1」用と「host2」用の を取得する必要があります。Inet6Address

ただし、JVM はデフォルトで、後方互換性の理由から、IPv6 アドレスよりも IPv4 アドレスを使用することを優先します。したがって、上記のコードでは、「host1」への最初の接続試行は成功しますが、「host2」への 2 回目の接続試行は失敗しInetAddress.getByName("host2")ます。Inet4AddressInet6Address

IPv4 よりも IPv6 アドレスを優先するようにシステム プロパティを true に設定できることは理解していjava.net.preferIPv6Addressesますが、これにより、「host2」への 2 回目の接続試行は成功しますが、「host1」への最初の接続試行は失敗しInetAddress.getByName("host1")ます(!)。のInet6Address代わりにInet4Address

システム プロパティjava.net.preferIPv6Addressesは 1 回だけ読み取られるため (InetAddress の 212 ~ 218 行を参照)、値を true に設定した後に値を false に戻しても効果はありません。

では、この場合どうすればよいのでしょうか。これはよくある問題のように思えるので、すでにそれを行う方法があるに違いありません。

InetAddress.getByAddress()もちろん、代わりに各マシンの IP アドレスを明示的に使用および提供して、 Inet4Addressandを取得するInet6Addressこともできますが、本当に必要でない限り、これを実行したくありません。他の解決策をお願いします。

ああ、問題が発生した場合に備えて、Java 1.6.0_19 を使用しています。

ありがとう!

0 投票する
1 に答える
678 参照

java - 面白いことが起こります...ExecutorCompletionService

ネットワーク上の到達可能なすべてのホストを見つける必要があるJavaで記述されたアプリケーションがあります。

InetAddress.isReachable()はこれを2000ミリ秒のタイムアウトで行うために使用します。

現在のローカルマシンのIPアドレスを検索し、それに基づいて、ローカルマシンのIPアドレスが欠落している1〜255で終わる他のIPアドレスに到達しようとします。

それはすべて正常にシングルスレッドで動作しますが、ほとんどのIPアドレスは存在しないため到達できないため、2秒のタイムアウトを使い切るので時間がかかります。

物事をスピードアップするために(そして実際に並行性を試すために:: Brian Goetz)私はFutureandCallableなどを使ってみました。

これもすべてうまくいきました。

ただしExecutorCompletionService、ユーザーがより応答性の高いアプリケーションを使用できるようにするためにを使用することを考えたので、ユーザーはを使用して利用可能になったときに結果を確認できました。

次の構成を使用してシングルプロセッサマシンでこれを実行すると、到達可能な4つのホストのうち1つだけが識別されます。

クアッドコアマシンでこれに変更すると、到達可能なすべてのホストを検出できなくなります。

タイムアウトを10秒に変更することInetAddress.isReachable()で、最後の構成が正常に機能するようになりました。

また、クアッドコアマシンで次のように構成を変更することにより、2秒のタイムアウトで動作するようになりました。

なぜこれが起こるのか非常に明白な何かが欠けていますか?

InetAddress.isReachable(2000)ネットワーク上の到達可能なすべてのホストを検出できないのは何ですか?

InetAddress.isReachable()複数の呼び出しを実行しようとすると失敗するのはなぜですか?

0 投票する
1 に答える
235 参照

postgresql - PostgreSQL:IPv4アドレスの最初の3つの数字を比較しますか?

私は、ユーザーが他のユーザーの「良さ」を評価できるPHPスクリプトをプログラムしようとしています。

改ざんを防ぐために(しようと)過去1時間の間に同じIPからの同じIDのエントリを削除したい

(プロキシ/ルーターによる時折の誤検知は問題ありません-作成者は後で再送信できるため、評価を失っても問題ありませんが、別のIDで登録され、データベース全体を台無しにすることはできません。私がウェブサイトから離れている間):

2つの質問があります:

1)4ではなくIPアドレスの最初の3つの数字だけを比較したい場合、どうすればよいですか? (はい、IPv4ネットワークのA、B、Cタイプについては知っていますが、ここでは関係ありません...)

2)テーブルにインデックスを追加する必要がありますか、それともidとauthorがすでにインデックスに登録されていますか?

ありがとうございました!アレックス