Page 1 sur 2
Outils réseaux nécessitant une lib WinPCAP ???
Publié : jeu. 19/déc./2013 23:15
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.

Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : ven. 20/déc./2013 11:16
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
deviendrai

Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : ven. 20/déc./2013 15:23
par Golfy
C'était ma première idée... mais je voudrais valider que cela n'entrainera pas d'autres effets de bord...

Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : ven. 20/déc./2013 15:28
par Backup
ya pas de raisons , si Fred a viré les Type sur les pointeurs, c'est qu'il a géré le truc

Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : ven. 20/déc./2013 20:20
par Golfy
C'est plutôt par rapport à des structures, je n'ose pas tout casser, exemple :
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...

Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : ven. 20/déc./2013 22:57
par Backup
Golfy a écrit :C'est plutôt par rapport à des structures, je n'ose pas tout casser, exemple :
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
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 )
Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : sam. 21/déc./2013 0:56
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+
Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : sam. 21/déc./2013 12:30
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

Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : lun. 23/déc./2013 10:07
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 !!!
Si cela fonctionne, il pourrait y avoir de nombreuses applications pratiques pour PureBasic (ping, traceroute, scanner, analyseur réseau, etc.)
Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : lun. 23/déc./2013 12:40
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.
Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : mer. 25/déc./2013 16:50
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 :

comment je me débarrasse de POLINK error avec pcap_findalldevs_ex() ???
PS : @TOUS :
Joyeux Noël !!!
Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : jeu. 26/déc./2013 22:58
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+
Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : dim. 11/mai/2014 13:53
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
Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : lun. 12/mai/2014 8:32
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+
Re: Outils réseaux nécessitant une lib WinPCAP ???
Publié : lun. 12/mai/2014 9:07
par Ar-S
Tout fonctionne chez moi PAPIPP.
merci
P.S : L'exe dans library est normal ?