この要件は、閉鎖的な組織内で接続するすべてのデバイスの情報を収集するローカル サーバー用です。OS バージョン、ソフトウェア バージョン、ハードウェア プロパティなどの詳細を取得する必要があります。
2 に答える
最善の策は、すべての HTTP 要求のヘッダーにあるユーザー エージェント文字列です。HttpServletRequest
次のようにしてアクセスできます。
String agent = request.getHeader("User-Agent");
ブラウザー (クライアント) 名、ブラウザーのバージョン、OS、OS のバージョンなどの情報が含まれています。これらが完全で有効であるという保証はありませんが、サーバーからクライアントに完全で有効な情報を送信するよう強制することはできません。自体。
例
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/34.0.1847.131 Safari/537.36
これは (ソース) を意味します:
Mozilla: MozillaProductSlice. Mozilla ベースのユーザー エージェントであると主張していますが、これは Firefox や Netscape などの Gecko ブラウザーにのみ当てはまります。他のすべてのユーザー エージェントでは、「Mozilla 互換」を意味します。最新のブラウザーでは、これは歴史的な理由でのみ使用されます。もう本当の意味はない
5.0: Mozilla バージョン
Windows NT 6.1:オペレーティング システム: Windows 7
WOW64: (Windows-On-Windows 64 ビット) 32 ビット アプリケーションが 64 ビット プロセッサで実行されています
AppleWebKit: Web Kit は、Web コンテンツをウィンドウに表示するための一連のコア クラスを提供します。
537.36: Web キットのビルド
KHTML: KDE プロジェクトによって開発されたオープン ソースの HTML レイアウト エンジン
Gecko のように: Gecko のように...
クロム:名前: クロム
34.0.1847.131: Chrome のバージョン
サファリ: サファリに基づく
537.36: Safari ビルド
ユーザー エージェント文字列分析
ユーザー エージェント文字列の分析について: Java ユーザー エージェント文字列パーサーの検索
また、useragentstring.com にはAPIがあります。
そして、インターネット上にはもっとあります(Google it)。
Web サーバーが、接続しているコンピューターに関する任意の情報を要求できるとしたら、それが何を意味するか想像してみてください。これを行うソフトウェアはありますが、クライアント側のソフトウェア、少なくともブラウザ プラグインが必要です。
したがって、あなたがこの質問をする方法の範囲については、「いいえ、これは不可能です」と言うでしょう。ただし、根本的な問題は解決できますが、あなたの質問があなたが行きたいことを意味するのとは異なる方法で解決できます. そして、これがどのように機能するかは、ここでの簡単な答えの範囲をはるかに超えています.