Outils réseaux nécessitant une lib WinPCAP ???

Programmation d'applications complexes
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Outils réseaux nécessitant une lib WinPCAP ???

Message par Golfy »

Bonjour,

j'avais (il y a longtemps) développé un outil réseau sur la base d'une lib WinPCAP (origine allemande).
Aujourd'hui, j'aurai bien repris une partie du code mais j'ai beaucoup de *Var.Type qui depuis ne sont plus autorisés...

Dois-je reprendre le code allemand et tout corriger (http://www.purearea.net/pb/showcase/show.php?id=354&d=0)
Dois-je repartir sur la documentation WinPCAP et faire une lib adaptée à Purebasic ?
Dois-je espérer que Fred s'intéresse au réseau ? (c'est noël, je peux essayer de croire au Père Noël)
...

Bref, si vous avez des pistes, je suis preneur (surtout pour le premier point) :
L'idée serait de créer des traceroute/ping/monitoring réseau !!!

Merci d'avance. :wink:
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par Backup »

Golfy a écrit :Bonjour,

j'avais (il y a longtemps) développé un outil réseau sur la base d'une lib WinPCAP (origine allemande).
Aujourd'hui, j'aurai bien repris une partie du code mais j'ai beaucoup de *Var.Type qui depuis ne sont plus autorisés...

ben il te suffit de suprimer le ".type" de tes pointeurs

Code : Tout sélectionner

*toto.l
deviendrai

Code : Tout sélectionner

*toto 
;)
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par Golfy »

C'était ma première idée... mais je voudrais valider que cela n'entrainera pas d'autres effets de bord... :roll:
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par Backup »

ya pas de raisons , si Fred a viré les Type sur les pointeurs, c'est qu'il a géré le truc :)
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par Golfy »

C'est plutôt par rapport à des structures, je n'ose pas tout casser, exemple :

Code : Tout sélectionner

pcap_next.l(*p.pcap_t, *h.pcap_pkthdr
Et puis j'ai des messages que je peine à comprendre :

Code : Tout sélectionner

POLINK: error: Unresolved external symbol 'pcap_findalldevs_ex'.
POLINK: error: Unresolved external symbol 'pcap_freealldevs'.
J'ai une procédure comme celle-ci qui contient les termes en erreur :

Code : Tout sélectionner

ImportC "wpcap.lib"
   ...	
  pcap_findalldevs.l(*palldevsp, *errbuf)	
  pcap_freealldevs(*alldevsp.pcap_if_t)		
  pcap_findalldevs_ex.l(source.s, *auth.pcap_rmtauth, *palldevs, *errbuf)
  ...
EndImport

Code : Tout sélectionner

If pcap_findalldevs_ex(#PCAP_SRC_IF_STRING, #Null , @*alldevs, @errbuf) = -1
  PrintN("Error in pcap_findalldevs_ex: "+errbuf);
  Input()
  End
EndIf
Bref, c'est un cran au-desssus de mes capacités de programmeur basic (et en basic) je crois.
J'accepte toute aide mais les couches réseaux n'intéressent pas grand'monde... :roll:
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par Backup »

Golfy a écrit :C'est plutôt par rapport à des structures, je n'ose pas tout casser, exemple :

Code : Tout sélectionner

pcap_next.l(*p.pcap_t, *h.pcap_pkthdr
la c'est que dans la Structure .pcap_pkthdr l'un des membres est un pointeur typé ... faudrai pas !


en fait c'est le contenu de la structure qu'il faudrai modifier je pense .... pas son appel !

donc dans ton cas tu ne touche as a

Code : Tout sélectionner

pcap_next.l(*p.pcap_t, *h.pcap_pkthdr
mais faut modifier les pointeurs dans la structure qui contiendrai un type ! (donc a l'interieur du Structure----- endstructure ) :)

sinon la solution ultime est de rester avec une version de Purebasic qui acceptait les Types pour les pointeurs ....
la 4.61 ?? (je sais plus )
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par PAPIPP »

Bonjour Golfy

Après avoir supprimé les types élémentaires *xx.L ou *xx.b etc.. des pointeurs comme l'a dit Dobro.
pour cela seulement toujours partir en compile du Winpcap_Tu01.pb ou en compilant le module x ne corriger que ces erreurs et non les autres
une fois ce travail terminé reprendre la compile du Winpcap_Tu01.pb ou l'on retrouve l'erreur suivante.

L'erreur pour la structure en défaut :
Ici 2 solutions
1) un peu brute mais efficace et simple.Mettre en commentaire dans le module pcap-int.pb dans la structure pcap_ms
l'info stat.pcap_stat car je n'ai pas trouvé d'utilisation de l'info stat\
2) plus pure comme solution. La structure pcat_stat se trouve dans le module pcap.pb qui est appelé après le module pcap_int.pb
c'est pourquoi le compilateur PB a une passe ne trouve pas la structure pcap_stat
il faut donc la déplacer du modue pcap.pb en tête du module pcap_int
et laisser l'info stat.pcap_stat en l'état.

Enfin la librairie wpcap.lib doit être placée dans le répertoire ...\PureLibrairies\Windows\librairies

et ainsi tout fonctionne parfaitement.
Tout ce travail ne m'a demandé qu'une vingtaine de minutes pour winpcap_Tu01 et TU02
il faut recommencer pour les autres TUxx
Pour le module TU05 il faut en plus des erreurs *xx.l et *xx.b corriger #byte et #word en #pb_byte et #pb_word
A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par Backup »

tout ça c'est la raison pour lequel je préfère avoir un seul listing :)

les includes, c'est tentant mais c'est le cirque a débugger :)
Dernière modification par Backup le dim. 11/mai/2014 13:55, modifié 1 fois.
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par Golfy »

PAPIPP a écrit :Bonjour Golfy

Après avoir supprimé les types élémentaires *xx.L ou *xx.b etc.. des pointeurs comme l'a dit Dobro.
pour cela seulement toujours partir en compile du Winpcap_Tu01.pb ou en compilant le module x ne corriger que ces erreurs et non les autres
une fois ce travail terminé reprendre la compile du Winpcap_Tu01.pb ou l'on retrouve l'erreur suivante.

L'erreur pour la structure en défaut :
Ici 2 solutions
1) un peu brute mais efficace et simple.Mettre en commentaire dans le module pcap-int.pb dans la structure pcap_ms
l'info stat.pcap_stat car je n'ai pas trouvé d'utilisation de l'info stat\
2) plus pure comme solution. La structure pcat_stat se trouve dans le module pcap.pb qui est appelé après le module pcap_int.pb
c'est pourquoi le compilateur PB a une passe ne trouve pas la structure pcap_stat
il faut donc la déplacer du modue pcap.pb en tête du module pcap_int
et laisser l'info stat.pcap_stat en l'état.

Enfin la librairie wpcap.lib doit être placée dans le répertoire ...\PureLibrairies\Windows\librairies

et ainsi tout fonctionne parfaitement.
Tout ce travail ne m'a demandé qu'une vingtaine de minutes pour winpcap_Tu01 et TU02
il faut recommencer pour les autres TUxx
Pour le module TU05 il faut en plus des erreurs *xx.l et *xx.b corriger #byte et #word en #pb_byte et #pb_word
A+
Trop cool merci !!!
je vais essayer mais je comprend mieux le message POLINK du coup. Trop fort PAPIPP !!! :idea:
Si cela fonctionne, il pourrait y avoir de nombreuses applications pratiques pour PureBasic (ping, traceroute, scanner, analyseur réseau, etc.)
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par Ar-S »

Comme toi la gestion des couches réseaux et pb restent bien vaporeuses mais je suis ce topic avec intéret.
Si ton logiciel est destiné à windows, tu peux déjà récupérer pas mal d'infos en utilisant les données d'ipconfig et autre ping
Mais une bonne bibliothèque serait un super outil.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par Golfy »

@Ar-S : le réseau et ses protocoles sont ma "spécialité" (TCP, UDP, ICMP et les protocoles dépendants IMAP, DNS, Telnet, SMTP, SNMP, etc.)... par contre, leur mise en oeuvre en PureBasic reste difficile : l'intégration de WinpCAP dans Purebasic serait une réelle avancée (comme Ogre pour la 3D).

@PAPIPP : :oops: comment je me débarrasse de POLINK error avec pcap_findalldevs_ex() ???

PS : @TOUS : Joyeux Noël !!!
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par PAPIPP »

Bonjour Golfy

Si les instructions précédentes on été suivies
il ne devrait pas y avoir de Problème
Une erreur de polink nous informe que le compilateur PB :
soit n'a pas trouvé wpcap.lib là où je l'ai indiqué
soit wpcap.lib n'est pas conforme à la librairie trouvée dans PB_Winpcap.zip.

Voici à titre d'information ce que j'ai trouvé comme modules dans la wpcap.lib extrait de PB_winpcao.zip
polib /LIST wpcap.lib
WPCAP.dll:__IMPORT_DESCRIPTOR_WPCAP
WPCAP.dll:__NULL_IMPORT_DESCRIPTOR
WPCAP.dll:WPCAP_NULL_THUNK_DATA
WPCAP.dll:_pcap_breakloop
WPCAP.dll:_pcap_close
WPCAP.dll:_pcap_compile
WPCAP.dll:_pcap_compile_nopcap
WPCAP.dll:_pcap_createsrcstr
WPCAP.dll:_pcap_datalink
WPCAP.dll:_pcap_datalink_name_to_val
WPCAP.dll:_pcap_datalink_val_to_description
WPCAP.dll:_pcap_datalink_val_to_name
WPCAP.dll:_pcap_dispatch
WPCAP.dll:_pcap_dump
WPCAP.dll:_pcap_dump_close
WPCAP.dll:_pcap_dump_file
WPCAP.dll:_pcap_dump_flush
WPCAP.dll:_pcap_dump_ftell
WPCAP.dll:_pcap_dump_open
WPCAP.dll:_pcap_file
WPCAP.dll:_pcap_findalldevs
WPCAP.dll:_pcap_findalldevs_ex :<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<ICI
WPCAP.dll:_pcap_freealldevs
WPCAP.dll:_pcap_freecode
WPCAP.dll:_pcap_geterr
WPCAP.dll:_pcap_getevent
WPCAP.dll:_pcap_getnonblock
WPCAP.dll:_pcap_is_swapped
WPCAP.dll:_pcap_lib_version
WPCAP.dll:_pcap_list_datalinks
WPCAP.dll:_pcap_live_dump
WPCAP.dll:_pcap_live_dump_ended
WPCAP.dll:_pcap_lookupdev
WPCAP.dll:_pcap_lookupnet
WPCAP.dll:_pcap_loop
WPCAP.dll:_pcap_major_version
WPCAP.dll:_pcap_minor_version
WPCAP.dll:_pcap_next
WPCAP.dll:_pcap_next_ex
WPCAP.dll:_pcap_offline_filter
WPCAP.dll:_pcap_open
WPCAP.dll:_pcap_open_dead
WPCAP.dll:_pcap_open_live
WPCAP.dll:_pcap_open_offline
WPCAP.dll:_pcap_parsesrcstr
WPCAP.dll:_pcap_perror
WPCAP.dll:_pcap_remoteact_accept
WPCAP.dll:_pcap_remoteact_cleanup
WPCAP.dll:_pcap_remoteact_close
WPCAP.dll:_pcap_remoteact_list
WPCAP.dll:_pcap_sendpacket
WPCAP.dll:_pcap_sendqueue_alloc
WPCAP.dll:_pcap_sendqueue_destroy
WPCAP.dll:_pcap_sendqueue_queue
WPCAP.dll:_pcap_sendqueue_transmit
WPCAP.dll:_pcap_set_datalink
WPCAP.dll:_pcap_setbuff
WPCAP.dll:_pcap_setfilter
WPCAP.dll:_pcap_setmintocopy
WPCAP.dll:_pcap_setmode
WPCAP.dll:_pcap_setnonblock
WPCAP.dll:_pcap_setsampling
WPCAP.dll:_pcap_snapshot
WPCAP.dll:_pcap_stats
WPCAP.dll:_pcap_stats_ex
WPCAP.dll:_pcap_strerror
et le module pcap_findalldevs_ex se trouve bien dans la librairie

A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par Golfy »

Bonjour PAPIPP (j'espère que tu lis toujours ce forum)

J'ai toujours le message POLINK !
POLINK Error: Unresolved external symbol 'pcap_findalldevs_ex'
POLINK Error: Unresolved external symbol 'pcap_freealldevs'


- Pourtant, j'ai fait la chasse au *#######.type (.b, .l, etc. sauf sur les *####.structure)
- J'ai bien placé la librairie winpcap.lib dans c:\Program Files\Purebasic\PureLibraries\Windows\Librarires (preuve : polib /LIST ../PureLibraries/Windows/Libraries/wpcap.lib fonctionne. Ayant pb 32 bits et 64 bits, j'ai aussi mis la lib dans Program (x86)...../ )
- J'ai déplacé la structure pcap_stat du fichier pcap.pb au début (après enum) du fichier pcap_int.pb
- J'ai remplacé #Byte par #PB_Byte et #Word par #PB_Word

Je teste avec le premier exemple ou avec mon programme (Stalawa, présent sur le net) : toujours le maudit POLINK.

As-tu une idée pour déboguer ça ?
Merci d'avance pour ton aide précieuse :)

extrait polib /LIST ../PureLibraries/Windows/Libraries/wpcap.lib

Code : Tout sélectionner

WPCAP.dll:_pcap_findalldevs
WPCAP.dll:_pcap_findalldevs_ex
WPCAP.dll:_pcap_freealldevs
WPCAP.dll:_pcap_freecode
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par PAPIPP »

Bonjour Golfy
Je viens à nouveau de tester winpcap et il fonctionne parfaitement chez moi.
Voici l’ensemble des fichiers que j’ai corrigés sous le nom de PB-WinPcap.rar :http://dl.free.fr/n8jaHIDDk
Les fichiers corrigés ont une date de décembre 2013
http://dl.free.fr/n8jaHIDDk
A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Outils réseaux nécessitant une lib WinPCAP ???

Message par Ar-S »

Tout fonctionne chez moi PAPIPP.
merci

P.S : L'exe dans library est normal ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre