問題タブ [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.
java - Java:intをInetAddressに変換します
ネットワークバイトオーダーのIPアドレスを含むがありint
、これをオブジェクトに変換したいと思いInetAddress
ます。をInetAddress
とるコンストラクターがあるようですが、を最初byte[]
に変換する必要がありますか、それとも別の方法がありますか?int
byte[]
java - Javaで文字列をInetaddressに変換する簡単な方法はありますか?
文字列を に変換しようとしていますInetaddress
。ホスト名を解決しようとしていません。文字列は ipv4 アドレスです。機能しますInetAddress.getByName(String host)
か?または、手動で解析する必要がありますか?
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プログラムによって生成された結果は間違っていますか?
java - Javaクラスをそのサブクラスの1つ(SocketAddressおよびInetSocketAddress)に変換する方法
ソケット接続のIPを文字列形式で取得しようとしています。
受信したメッセージのを返すフレームワークを使用していSocketAddress
ます。どうすればそれをInetSocketAddress
またはに変換できInetAddress
ますか?
java - InetAddress の使用を避ける - ネットワーク バイト順で未加工の IP アドレスを取得する
Google App Engine で MaxMind GeoLite Country データベースを使用しようとしています。ただし、App Engine では使用できない InetAddress クラスに依存しているため、Java API を機能させるのに苦労しています。
ただし、特定のホスト名の IP を決定するために InetAddress クラスのみを使用しているように見えるため、簡単な回避策があるかどうかはわかりません。私の場合、ホスト名はとにかく常に IP です。
私が必要としているのは、文字列として表される IP アドレスをネットワーク バイト オーダーのバイト配列 (InetAddress クラスの addr.getAddress() メソッドが提供する) に変換する方法です。
これは現在の API が使用するコードです。InetAddress へのすべての参照を削除する方法を見つける必要があります。
御時間ありがとうございます。
java - Java の isReachable は、想定どおりに機能していないようです。
私は Clojure を使用していますが、Java を読むことができるので、これは Clojure 固有の質問ではありません。これはJavaからは機能していないようです。
isReachable を使用して、ちょっとした「ping」機能を実装しようとしています。私が使用しているコードは次のとおりです。
私の親友によってJavaに翻訳されました:
これらは両方とも false を返します。私は間違ったことをしているに違いないと思いますが、Google の調査では別のことがわかりました。私は混乱しています!
sql-server - SQL Server の単一の列に IPv4 または IPv6 の両方を格納する方法は?
またはを使用する必要がありますbinary(16)
かvarbinary(16)
?
getAddress()
in java.net.InetAddress
(Java) またはSystem.Net.IPAddress
(C#) を使用してとbyte[]
の両方の表現を取得できることはわかっています が、 ieを のフィールドに挿入する必要がある場合、パディングなどについて心配する必要がありますか?IPv4
IPv6
IPv4
binary(4)
binary(16)
SQL Server
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")
ます。Inet4Address
Inet6Address
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 アドレスを明示的に使用および提供して、 Inet4Address
andを取得するInet6Address
こともできますが、本当に必要でない限り、これを実行したくありません。他の解決策をお願いします。
ああ、問題が発生した場合に備えて、Java 1.6.0_19 を使用しています。
ありがとう!
java - 面白いことが起こります...ExecutorCompletionService
ネットワーク上の到達可能なすべてのホストを見つける必要があるJavaで記述されたアプリケーションがあります。
私InetAddress.isReachable()
はこれを2000ミリ秒のタイムアウトで行うために使用します。
現在のローカルマシンのIPアドレスを検索し、それに基づいて、ローカルマシンのIPアドレスが欠落している1〜255で終わる他のIPアドレスに到達しようとします。
それはすべて正常にシングルスレッドで動作しますが、ほとんどのIPアドレスは存在しないため到達できないため、2秒のタイムアウトを使い切るので時間がかかります。
物事をスピードアップするために(そして実際に並行性を試すために:: Brian Goetz)私はFuture
andCallable
などを使ってみました。
これもすべてうまくいきました。
ただしExecutorCompletionService
、ユーザーがより応答性の高いアプリケーションを使用できるようにするためにを使用することを考えたので、ユーザーはを使用して利用可能になったときに結果を確認できました。
次の構成を使用してシングルプロセッサマシンでこれを実行すると、到達可能な4つのホストのうち1つだけが識別されます。
クアッドコアマシンでこれに変更すると、到達可能なすべてのホストを検出できなくなります。
タイムアウトを10秒に変更することInetAddress.isReachable()
で、最後の構成が正常に機能するようになりました。
また、クアッドコアマシンで次のように構成を変更することにより、2秒のタイムアウトで動作するようになりました。
なぜこれが起こるのか非常に明白な何かが欠けていますか?
InetAddress.isReachable(2000)
ネットワーク上の到達可能なすべてのホストを検出できないのは何ですか?
InetAddress.isReachable()
複数の呼び出しを実行しようとすると失敗するのはなぜですか?
postgresql - PostgreSQL:IPv4アドレスの最初の3つの数字を比較しますか?
私は、ユーザーが他のユーザーの「良さ」を評価できるPHPスクリプトをプログラムしようとしています。
改ざんを防ぐために(しようと)過去1時間の間に同じIPからの同じIDのエントリを削除したい
(プロキシ/ルーターによる時折の誤検知は問題ありません-作成者は後で再送信できるため、評価を失っても問題ありませんが、別のIDで登録され、データベース全体を台無しにすることはできません。私がウェブサイトから離れている間):
2つの質問があります:
1)4ではなくIPアドレスの最初の3つの数字だけを比較したい場合、どうすればよいですか? (はい、IPv4ネットワークのA、B、Cタイプについては知っていますが、ここでは関係ありません...)
2)テーブルにインデックスを追加する必要がありますか、それともidとauthorがすでにインデックスに登録されていますか?
ありがとうございました!アレックス