Pergunta

Escrevi um pequeno script que coleta meu endereço IP externo toda vez que abro uma nova janela do terminal e o anexa, bem como no horário atual, a um arquivo de texto. Estou procurando idéias sobre uma maneira de visualizar quando/com que frequência meu endereço IP muda. Eu salto entre casa e campus e pude separá -los usando o script, mas seria bom visualizá -los separadamente.

Eu freqüentemente uso o matplotlib. Alguma ideia?

Foi útil?

Solução

Plote seu IP como um ponto em o mapa da Internet XKCD (ou alguns zoomes no subconjunto do mapa, para mostrar melhor IPs diferentes, mas intimamente vizinhos).

Plote cada ponto "empilhado" proporcional à frequência com que você teve esse IP e coloria os IPs para tornar pontos mais recentes e menos recentes proporcionalmente mais sombrios.

Outras dicas

"When" é dados temporais unidimensionais, que são bem mostrados por uma linha do tempo. Em escalas de tempo maiores, você provavelmente perderia os detalhes, mas em qualquer parcela de "quando" teria esse defeito.

Para "com que frequência", um gráfico 2D (bar) padrão versus frequência, dividido em baldes para cada dia/semana/mês, seria um caminho padrão a percorrer. Uma média móvel também pode ser informativa.

Você pode combinar a linha do tempo e o gráfico de barras, com a linha do tempo visível quando estiver em zoom e a exibição de frequência quando diminuiu o zoom.

Que tal um gráfico de barra com tempo no eixo horizontal, onde a largura de cada barra é o tempo que seu computador mantinha um endereço IP específico e a altura de cada barra é inversamente proporcional à largura? Isso também daria um enredo de quando vs vs com que frequência enredo.

Você também pode interpretar os dados como um densidade de pulso modulada sinal, como o que você recebe em um CD de Superaudio. Você pode representar graficamente isso ou até ouvir os dados. Como não há duração óbvia de tempo para um evento de mudança de IP, o comprimento de um pulso seria um parâmetro ajustável. Ao longo de linhas semelhantes, você pode ver os dados como uma onda quadrada (onda triangular, dente de serra & c), onde cada evento de mudança de IP é uma transição nivelada. Parece uma diversão Dados puros projeto.

Há uma seção no guia do usuário do MatPlotlib sobre as barras de desenho em um gráfico para representar intervalos. Eu nunca fiz isso sozinho, mas parece apropriado para o que você está procurando.

Supondo que você especifique o terminal, assumirei que você está em um sistema variante do UNIX. O uso da chave -F junto com a cauda do utilitário da linha de comando pode permitir que você monitore constantemente o final de um arquivo. Você também pode usar algo como a IBM's inotificar, que pode monitorar alterações de arquivo ou dnotificar (e colocar o arquivo em seu próprio diretório), que geralmente é padrão na maioria das distribuições (você pode chamar a cauda -N 1 para obter a última linha). Depois que a linha mudar, você pode pegar o tempo atual do sistema desde a Epoch usando o Python's Time.Time () e subtrai -lo da época da última alteração e, em seguida, plote essa diferença usando o matplotlib. Suponho que você possa categorizar os tempos em intervalos para facilitar o gráfico. 1 bar para intervalos de mudança de menos de 1 hora, outro para alterações entre 1 e 5 horas e assim por diante.

Há uma implementação python de cauda -f localizada aqui Se você não quiser usá -lo diretamente. Após a detecção de uma alteração no arquivo, você pode executar o acima.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top