2010-12-20 2 views
0

내 PC가 Java로 연결하는 URL을보고 할 수있는 샘플 코드가 있습니까?Java로 네트워크 연결을 모니터하는 방법은 무엇입니까?

브라우저를 사용하여 다른 사이트에 연결하고 온라인으로 비디오를 보는 동안 URL을 캡처해야합니다. Java로 할 수 있습니까?

자세한 트래픽을 원하지 않고 URL을 기록하십시오.

+1

Java에서 [Wireshark] (http://www.wireshark.org/)를 작성 하시겠습니까? ;) –

+0

프록시 서버를 사용하여 액세스하는 모든 URL을 기록 할 수 있습니다. 나는 하나를 쓰지 않을 것이고, 간단한 오픈 소스 중 하나를 사용하십시오. –

답변

1

가장 빠른 방법은 명령 줄 tshark 프로그램의 출력을 캡처하는 것입니다 (Windows 및 Linux 이상). 이것은 내 리눅스 상자에서 작동 :

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

과 같은 출력을 생성합니다 : 당신은 Windows 용 비슷한 받아야

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 
-- 

. 실험. 자바로 tshark의 출력을 얻는 방법은 당신에게 달린 것입니다.

all-java 솔루션을 원한다면 http://jnetpcap.com/은 어떻습니까?

플랫폼 별 JNI 코드를 작성하거나 제공하는 라이브러리를 사용해야합니다.

의 libpcap/WinPcap을그 jNetPcap 사용은 적어도 Windows 및 Linux 내 경험에서 신뢰성에이를 제공합니다. libpcap/WinPcap의 경험이 있지만 jNetPcap이 아닙니다.

tsharklibpcap/WinPcap 실제로 사용합니다.

어느 방법이든 매우 많은 가양 성을 보게 될 것입니다. HTML 페이지를 열려면 많은 이미지, 스타일 시트, 자바 스크립트 라이브러리 등이 필요합니다. 위의 스 니펫은 stackoverflow.com 페이지를 여는 것입니다.

1

이런 종류의 작업을 수행하는 데 가장 일반적으로 사용되는 라이브러리는 libpcap입니다. tcpdump.org에서 더 많은 정보를 찾을 수 있습니다. 다행스럽게도 libpcap에 대해 java wrapper이 있으므로 Java에서 이러한 종류의 작업을 수행 할 수 있습니다. 자세한 내용은 examplestutorial을 확인하십시오.