Как контролировать мое сетевое соединение с Java? - PullRequest
1 голос
/ 21 декабря 2010

Есть ли какой-нибудь пример кода, который может сообщить URL-адрес, который мой компьютер соединяется с Java?

Хотя я использую свой браузер для подключения к различным сайтам и просмотра видео в Интернете, он должен захватывать URL-адреса.Это выполнимо в Java?

Мне не нужен подробный трафик, просто запишите URL.

Ответы [ 2 ]

2 голосов
/ 21 декабря 2010

Вероятно, самый быстрый способ - захватить выходные данные программы командной строки tshark (по крайней мере для windows и linux).Это работает на моем linux box:

sudo tshark -f 'port 80' -R 'http' -V | grep -A 1 '^Hypertext Transfer Protocol'

и производит вывод вроде:

Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
Hypertext Transfer Protocol
    GET /questions/4494294/r-gplots-barplots-how-to-fix-bar-width-independent-of-paper-setting HTTP/1.1\r\n
--
Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n
--
Hypertext Transfer Protocol
    GET /posts/4494294/ivc/086e HTTP/1.1\r\n
--
Hypertext Transfer Protocol
    HTTP/1.1 204 No Content\r\n
--
Hypertext Transfer Protocol
    [truncated] GET /__utm.gif?utmwv=4.8.6&utmn=20455052&utmhn=stackoverflow.com&utmcs=UTF-8&utmsr=1600x1200&utmsc=24-bit&utmul=en-us&utmje=1&utmfl=10.1%20r102&utmdt=graph%20-%20R%3A%20gplots%2C%20barplots%3A%20how%20to%20fix%20bar%20width%20i
--
Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n
--

Вы должны получить что-то похожее для Windows.Эксперимент.Как вы получите вывод tshark в java, зависит от вас.

Если вы хотите полностью Java-решение, как насчет http://jnetpcap.com/?

Вы будете иметьнаписать (или использовать библиотеку, которая предоставляет) некоторый специфичный для платформы код JNI.

libpcap / WinPcap , который jNetPcap использует, обеспечивает это надежно как минимум в Windows и Linux измой опыт.У меня есть опыт работы с libpcap / WinPcap , но не с jNetPcap .

tshark также использует libpcap / WinPcap на самом деле.

В любом случае, вы увидите очень много ложных срабатываний .Для открытия HTML-страницы требуется получить много-много изображений, таблиц стилей, библиотек javascript и т. Д. Выше приведен фрагмент от открытия страницы stackoverflow.com.

2 голосов
/ 21 декабря 2010

Наиболее часто используемая библиотека для подобных вещей - libpcap. Вы можете найти гораздо больше информации об этом на tcpdump.org . К счастью, для libpcap существует java-оболочка , так что вы можете делать такие вещи в Java. Посмотрите их примеры и учебник для получения дополнительной информации.

...