• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

magician

[PyTeam] Contador de Trafego Sapo

205 mensagens neste tópico

Boas penso que todos conhecem o NetCount, mas infelizmente o NetCount não anda a funcionar la muito bem com a Sapo o ultimo mês levei mais 3gb de internacional do que apareceu no netcount, o que proponho é criar um programa dentro do genero do netcount mas mais simples, apenas para contar download nacional ou internacional, depois de algumas pesquisas as melhores opções são C e Python sendo a melhor python visto que tem um lib que funciona tanto com winpcap e libpcap e assim não é preciso reescrever código. Mas infelizmente o mesmo conhecimentos de Python ainda são poucos, já tenho a captação de IP e Tamanho de cada pacote mas dava algum geio ajuda para o resto por acaso ninguém estará interessado ??

PS : Peço desculpa por postar aqui mas achei que seria o melhor :D

Requisitos

Link para download: http://alojo.no.sapo.pt/contador.zip

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não nos importamos de ajudar, alias novos projectos são sempre coisa boa.

Vai ter de explicar melhor como é que isso funciona, eu vou ver na net, mas se pudesses dar uma explicação era o ideal.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É simples existe para win e linux o winpcap e libpcap respectivamente, são bibliotecas que permitem a captura de pacotes dos interfaces de redes, com a informação capturada conseguimos saber qual o IP de destino e o IP da fonte, e podemos também saber o tamanho do pacote, permite muitas outras coisas mas para o que se pretende isto basta há e se não me engano também dá para saber a taxa de upload e download do interface.

Com essa informação podemos saber todo o tráfego que passa pelo interface e de onde é proveniente e assim criar o contador. Depois só falta uma DB com os ranges de IPs da Sapo e acho que para isso também tenho uma ideia mas ainda tou a trabalhar nela.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O modulo a que te referes é o pylibpcap?

O programa tem de fazer é, simplesmente, verificar se o ip é nacional ou internacional, e elaborar taxas e somatórios?

Se assim for parece simples, que tipo de ajuda é que queres?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é esse modulo é o pcapy este funca com o winpcap e o libpcap e esse pelo nome só funca para libpcap.

Sim basicamente é isso. Pá ajuda, tipo eu já sei algumas coisas, até porque tirando a sintaxe Java e Python nem são assim tão diferentes, mas há cenas próprias da linguagem que ainda não sei para alem disso dava jeito fazer tipo uma "planta" do projecto e para isso é preciso saber como o python funciona.

PS :  O programa deve funcionar em Win e Linux por isso temos de ver bem o que usar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Onde posso arranjar o pcapy e informação sobre ele?

""planta" do projecto", não percebi.

O que é isso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto ao pcapy não te preocupes que já tenho uma class quase pronta e a funcionar com Threads.

Pá a "plata" é tipo uma esquematizarão do projecto, classes a implementar, requisitos, estrutura de ficheiros essas coisas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou eu não estou a ver bem o projecto, ou estás a complicar muito.

É um programa muito simples, de apenas 3 ficheiros (programa em si, a base de dados dos ips e a base de dados para registar os dados das execuções anteriores).

Funciona mais ou menos assim:

1- Intercepta o pacote.

2- Retira-lhe o ips de origem.

3- Verifica se esse ips é nacional ou internacional.

4- Acrescenta o tamanho do pacote ao contador de tráfego.

5- Guarda os resultados numa base de dados.

6- Elabora resumos dos resultados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Parece-me uma boa ideia. Gust, apenas precisas de usar uma library do género WinPcap da universidade de Torino para Windows ou a libpcap para *nix. Anyway, se alguém tiver conhecimento duma library "universal", faça o favor de informar :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou eu não estou a ver bem o projecto, ou estás a complicar muito.

É um programa muito simples, de apenas 3 ficheiros (programa em si, a base de dados dos ips e a base de dados para registar os dados das execuções anteriores).

Funciona mais ou menos assim:

1- Intercepta o pacote.

2- Retira-lhe o ips de origem.

3- Verifica se esse ips é nacional ou internacional.

4- Acrescenta o tamanho do pacote ao contador de tráfego.

5- Guarda os resultados numa base de dados.

6- Elabora resumos dos resultados.

Falta a interface gráfica :) mas sim basicamente é isso.

Para guardar os ips ranges penso que a melhor opção é usar um dicionário e quanto aos totais basta um simples ficheiro ou 1 xml.

Parece-me uma boa ideia. Gust, apenas precisas de usar uma library do género WinPcap da universidade de Torino para Windows ou a libpcap para *nix. Anyway, se alguém tiver conhecimento duma library "universal", faça o favor de informar :D

O modulo pcapy fazer de interface com o winpcap e libpcap, mas como é óbvio tem de ter uma dos 2 instalados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O modulo pcapy fazer de interface com o winpcap e libpcap, mas como é óbvio tem de ter uma dos 2 instalados.

Quando tiver tempo, vou investigar isso :D
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu essa parte já tenho quase pronta falta agora é o resto :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu essa parte já tenho quase pronta falta agora é o resto :)

Eheh, falta-te o quê? :D
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tudo o resto LOL :D desde a parte gráfica, ao ip range.

Quanto ao IP range eu tive uma ideia não sei se possível de realizar mas pronto cá vai. Como já está provado (falo por mim) os ip ranges da sapo são muito específicos, diferentes da maioria dos outros ISPs, o que nos dá duas opções ou arranjas uma bd de ips da sapo ou então fazer mesmo um, para isso pensei em usar a ferramenta que está na área de cliente da sapo que verifica se determinado IP é nacional ou internacional só tínhamos de fazer um pequeno problema que fizesse querys a essa ferramenta para todos os IPS desde 0.0.0.0 até 255.255.255.255 e dos resultados tirávamos aqueles que ele retorna "Trafego Local" que não é contado e colocávamos os ips num dicionário tipo 86.243.52.6:Nacional assim a pesquisa seria muito mais rapida porque ele iria logo ao IP, se a lista mesmo assim for muito grande podemos só guardar os nacionais e por defeito todo o resto é assumido como inter ou visse versa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Procura na net pelo .csv do IP-To-Country. Dentro dos que eles dão como tugas, só tens que ir à área de clientes da Sapo, pôr lá o IP e ver se eles consideram Nacional :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não deixam de ser muitos continuava a dar jeito algo que fizesse os querys automaticamente.

Para alem disso o cheiro .cvs que saquei tem um ficheiro mysql com linhas de inserte tipo

INSERT INTO {ip2cc} VALUES (1347354624,1347358719,'PT','GUIAO-QUELUZ','0');

não tem o ip :S a menos que aqueles conjuntos de numeros possam passar a IPs :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok pronto já sei como passar esse números para IP mas parece que os ips ranges da sapo não estão muito de acordo :S O Ip country dá como portugal mas a sapo da como Inter.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok pronto já sei como passar esse números para IP mas parece que os ips ranges da sapo não estão muito de acordo :S O Ip country dá como portugal mas a sapo da como Inter.

Exacto, agora das ranges tugas, vais ter que escolher os IPs de ranges que o sapo considera tugas. Depois com o tempo é aperfeiçoado.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

magician, assim que quiseres podemos começar a trabalhar.

Isto faz-se muito rapidamente.

Só precisamos que digas por onde começar, o que queres que façamos e como queres que seja o resultado.

Ah precisamos do pcapy! Como é que arranjamos?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mete no google pcapy é logo o primeiro. Eu tou aqui a tentar meter o pcapy a funcar mas tou aqui com 1 problemas.

Tipo em Java quando fazemos um try-catch para apanhar exceptions e não metermos nada para ele parar no catch o programa ignora a exception e continua no python não dá ?? é que tou a fazer um try mas ele para sempre :S tenho assim

try:
     self.pcap.loop(0, self.packetHandler)
     except:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mete no google pcapy é logo o primeiro. Eu tou aqui a tentar meter o pcapy a funcar mas tou aqui com 1 problemas.

Tipo em Java quando fazemos um try-catch para apanhar exceptions e não metermos nada para ele parar no catch o programa ignora a exception e continua no python não dá ?? é que tou a fazer um try mas ele para sempre :S tenho assim

try:
     self.pcap.loop(0, self.packetHandler)
     except:

O erro está no espacamento antes do "except", e mesmo assim não podes deixar em branco, se não queres que faça nada escreves "pass".

try:
     self.pcap.loop(0, self.packetHandler)
except:
     pass

Mas tem atenção que é má politica usar o "except" sozinho. Deves colocar à frente o tipo de erro que queres impedir ou corres o risco de estar a encobrir bugs.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já tenho isto implementado! não tá grande coisa mas também é o primeiro programa que faço em Python :D

O que ta aqui a faltar é arranjar uma forma de fazer return do t e falta ai ainda mais umas coisas.

Já agora qual a diferença do from para o simples import ??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenho más noticias :S a lista de IPs que o djthyrax falou realmente não serve a 100% :D dentro de um determinado range de IP alguns la no meio dão inter e outros nacional :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem pelo menos ai tão um bocado mais limitados mas eu ainda vou tentar outra coisa vou tentar fazer um bot para ligar há área de cliente da sapo e fazer querys á ferramenta que la tem.

Pá pode ir vendo do interface eu ainda não sei mas tava a pensar em GTK é o que tem melhor aspecto e dá para win e linux.

A propósito eu já meti ai +- o motor do programa que faz a captação de pacotes e tira a info, se calhar é melhor ser alguém a meter esse motor genérico pk essa parte de python não percebo :S

Quando digo generico é conseguir a partir de outras classes obter os valores deste motor.

Já agora djthyrax por acaso nem dominas curl pois não ?? era só fazer 1 pequeno bot tipo em php para este link http://trafego.adsl.sapo.pt/ e depois fazer de 0.0.0.0 a 255.255.255.255 e recolher os resultados assim os IPs iam dar certo com a sapo de certeza.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora