2009-04-15 4 views
1

필자는 새로운 터미널 창을 열 때마다 외부 IP 주소를 수집하여 현재 시간에 텍스트 파일에 추가하는 작은 스크립트를 작성했습니다. 나는 언제/얼마나 자주 내 IP 주소가 변경되는지 시각화하는 방법에 대한 아이디어를 찾고 있습니다. 나는 집과 캠퍼스 사이를 돌아 다니며 스크립트를 사용하여 그들을 구분할 수 있지만, 별도로 시각화하는 것이 좋을 것입니다.IP 주소가 파이썬에서 변경 될 때이를 시각화하는 방법은 무엇입니까?

자주 matplotlib을 사용합니다. 어떤 아이디어?

답변

4

IP를 the xkcd internet map에 점으로 표시하거나 다른 인접하지만 매우 인접한 IP를보다 잘 나타내려면지도의 일부를 확대하여 표시하십시오.

IP를 얼마나 자주 보았는가에 비례하여 각 점을 "겹쳐서 표시"하고 IP를 색칠하여 가장 최근의 점을 더 밝게, 최근 점을 더 비례 적으로 더 어둡게 만듭니다.

+0

이것이 몇 가지 다른 IP 주소 집합에서 가능한지 궁금합니다.내가 도시를 돌아 다니는 다양한 역 동성 IP 세트에 대해 다른 플롯을 사용하십시오. – physicsmichael

0

범위를 나타내는 차트의 막대를 그리는 방법에 대한 matplotlib 사용자 가이드의 섹션이 있습니다. 나는 그 자신을 한 번도 해보지 않았지만, 당신이 찾고있는 것이 적절하다고 생각합니다.

0

당신이 터미널을 지정했다고 가정하면, 나는 당신이 UNIX 변형 시스템에 있다고 가정 할 것입니다. 명령 줄 유틸리티 꼬리와 함께 -f 스위치를 사용하면 파일의 끝을 지속적으로 모니터 할 수 있습니다. 파일 변경 사항을 모니터하거나 (일반적으로 대부분의 배포판에서 표준으로 제공되는) 파일을 dnotify (그리고 그 파일을 자신의 디렉토리에 배치) 할 수있는 IBM의 inotify과 같은 것을 사용할 수도 있습니다. 그런 다음 tail -n 1을 호출하여 마지막 줄을 얻을 수 있습니다. 일단 라인이 변경되면, 파이썬의 time.time()을 사용하여 에포크 이후의 현재 시스템 시간을 가져 와서 마지막 변경 시간에서 뺀 다음, matplotlib를 사용하여이 차이를 플로팅 할 수 있습니다. 나는 당신이 시간을 으로 분류하여 그래프를 쉽게 만들 수 있다고 가정합니다. 1 Bar는 1 시간 미만의 변경 간격 동안, 다른 하나는 1 - 5 시간 사이의 변경 사항 등으로 표시됩니다.

직접 사용하지 않으려면 tail -f가있는 here에 파이썬 구현이 있습니다. 파일의 변경을 감지하면 위와 같은 작업을 수행 할 수 있습니다.

1

"When"는 1 차원 시간 데이터로, 타임 라인에 의해 잘 나타납니다. 더 큰 시간대에서는 세부 사항을 잃을 지 모르지만 대부분의 "언제"에 대한 계획은 이러한 결함을 가지고 있습니다.

"빈도수"에 대해 표준 v2 빈도 (일별/일별/일별) 버킷으로 분류 된 표준 2 차원 막대 그래프가 표준 방법입니다. 이동 평균은 정보 제공 일 수도 있습니다.

시간 표시 줄 & 바 플롯을 결합 할 수 있습니다. 확대 할 때 타임 라인이 표시되고 & 축소 할 때 주파수가 표시됩니다.

각 축의 너비는 컴퓨터가 특정 IP 주소를 보유한 시간이며 각 막대의 높이는 너비에 반비례합니다. 그것은 또한 대 음영의 빈도에 대한 플롯을 제공합니다.

SuperAudio CD에서 얻은 것과 같이 데이터를 pulse density modulated 신호로 해석 할 수도 있습니다. 이것을 그래프로 나타낼 수도 있고 데이터를들을 수도 있습니다. IP 변경 이벤트에 대한 시간 길이가 명확하지 않기 때문에 펄스의 길이는 조정 가능한 매개 변수가됩니다. 유사한 선과 함께, 데이터를 사각 파 (삼각파, 톱니 모양 & c)로 볼 수 있습니다. 여기서 각 IP 변경 이벤트는 레벨 전환입니다. 재밌는 것 같아. Pure Data 프로젝트.

관련 문제