packet UDP sur broadcast
packet UDP sur broadcast
Bonjour,
j'ai une appli qui envoi une trame sur mon broadcast (192.168.0.255), compilé sur windows pas de souci la trame est envoyée correctement...
le même code sous linux ne fait rien du tout :/ (ubuntu, debian, busybox)
si je met une IP de type 192.168.0.13 à la place du broadcast sur mon code linux, le PC à cet adresse intercepte correctement le packet. Donc ce n'est pas bug de la fonction SendNetworkData sous linux.
y a t'il une gestion différente d’envoi de trame sur le broadcast sous linux ?
ps : j'ai essayé 255.255.255.255 / 192.255.255.255 / 192.168.255.255 également ...
------------------------------------------------------------------------------------
EDIT :
j'ai effectivement ma valeur de retour SendNetworkData = -1 si je met le broadcast alors qu'une ip en direct est bien prise en compte sur LINUX alors que le meme code code windows me renvoie bien la bonne valeur ...
ce qui est embêtant car je lance une commande sur le broadcast afin que les appareils concerné me communique leur IPs :s
j'ai une appli qui envoi une trame sur mon broadcast (192.168.0.255), compilé sur windows pas de souci la trame est envoyée correctement...
le même code sous linux ne fait rien du tout :/ (ubuntu, debian, busybox)
si je met une IP de type 192.168.0.13 à la place du broadcast sur mon code linux, le PC à cet adresse intercepte correctement le packet. Donc ce n'est pas bug de la fonction SendNetworkData sous linux.
y a t'il une gestion différente d’envoi de trame sur le broadcast sous linux ?
ps : j'ai essayé 255.255.255.255 / 192.255.255.255 / 192.168.255.255 également ...
------------------------------------------------------------------------------------
EDIT :
j'ai effectivement ma valeur de retour SendNetworkData = -1 si je met le broadcast alors qu'une ip en direct est bien prise en compte sur LINUX alors que le meme code code windows me renvoie bien la bonne valeur ...
ce qui est embêtant car je lance une commande sur le broadcast afin que les appareils concerné me communique leur IPs :s
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
Re: packet UDP sur broadcast
Bonjour,
Tu compile sous linux ?
SendNetworkData = -1 < c'est que rien n'a pu être envoyer la connexion n'est peut être pas ouverte ?
Fait un ping -b (broadcast)
Tu compile sous linux ?
SendNetworkData = -1 < c'est que rien n'a pu être envoyer la connexion n'est peut être pas ouverte ?
Fait un ping -b (broadcast)
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
Re: packet UDP sur broadcast
oui je compile sous dedian 7 KDE 64Bit et même sur ubuntu 12.10 32Bit
même erreur sous les linux, sauf que le même code sous windows (qui est dans le même réseau) fonctionne impec !
ping -b 192.168.0.255 me renvoi :
64 bytes from 192.168.0.253:icmp_req1 ....
64 bytes from 192.168.0.253:icmp_req2 ....
64 bytes from 192.168.0.253:icmp_req3 ....
64 bytes from 192.168.0.253:icmp_req4 ....
64 bytes from 192.168.0.253:icmp_req5 ....
le ping sous windows (même reseau) ne me donne pas de réponse.
>ping 192.168.0.255
Envoi d'une requête 'Ping' 192.168.0.255 avec 32 octets de données :
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Statistiques Ping pour 192.168.0.255:
Paquets : envoyés = 3, reçus = 0, perdus = 3 (perte 100%),
Voila un bout de code qui permet de constater le problème sous Linux et qui fonctionne sous Windows :
;-------------------------------------------------------------------------------
OpenConsole()
If InitNetwork() = 0
PrintN("Error => Can't initialize the network !")
Goto killsoft
EndIf
*Header = AllocateMemory(70)
connection.i = OpenNetworkConnection("192.168.0.255", 49999,#PB_Network_UDP)
If connection <> 0
PrintN("OpenNetworkConnection OK !")
ret.i = SendNetworkData(connection, *Header,70)
While ret = -1
ret = SendNetworkData(connection, *Header,70)
PrintN("SendNetworkData return -1 ... retry !")
Delay(1000)
Wend
If ret = 70
PrintN("Header Sent Correct !")
Else
PrintN("Header error (Not 70) ! => "+ret)
EndIf
CloseNetworkConnection(connection)
Else
PrintN(" --- ERROR --- OpenNetworkConnection Faild!")
EndIf
killsoft :
Input()
;-------------------------------------------------------------------------------
Edit :
si je met OpenNetworkConnection("192.168.1.255", 49999,#PB_Network_UDP) j'ai bien un retour correct sous linux !
mais pas pour 192.168.0.255
même erreur sous les linux, sauf que le même code sous windows (qui est dans le même réseau) fonctionne impec !
ping -b 192.168.0.255 me renvoi :
64 bytes from 192.168.0.253:icmp_req1 ....
64 bytes from 192.168.0.253:icmp_req2 ....
64 bytes from 192.168.0.253:icmp_req3 ....
64 bytes from 192.168.0.253:icmp_req4 ....
64 bytes from 192.168.0.253:icmp_req5 ....
le ping sous windows (même reseau) ne me donne pas de réponse.
>ping 192.168.0.255
Envoi d'une requête 'Ping' 192.168.0.255 avec 32 octets de données :
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Statistiques Ping pour 192.168.0.255:
Paquets : envoyés = 3, reçus = 0, perdus = 3 (perte 100%),
Voila un bout de code qui permet de constater le problème sous Linux et qui fonctionne sous Windows :
;-------------------------------------------------------------------------------
OpenConsole()
If InitNetwork() = 0
PrintN("Error => Can't initialize the network !")
Goto killsoft
EndIf
*Header = AllocateMemory(70)
connection.i = OpenNetworkConnection("192.168.0.255", 49999,#PB_Network_UDP)
If connection <> 0
PrintN("OpenNetworkConnection OK !")
ret.i = SendNetworkData(connection, *Header,70)
While ret = -1
ret = SendNetworkData(connection, *Header,70)
PrintN("SendNetworkData return -1 ... retry !")
Delay(1000)
Wend
If ret = 70
PrintN("Header Sent Correct !")
Else
PrintN("Header error (Not 70) ! => "+ret)
EndIf
CloseNetworkConnection(connection)
Else
PrintN(" --- ERROR --- OpenNetworkConnection Faild!")
EndIf
killsoft :
Input()
;-------------------------------------------------------------------------------
Edit :
si je met OpenNetworkConnection("192.168.1.255", 49999,#PB_Network_UDP) j'ai bien un retour correct sous linux !
mais pas pour 192.168.0.255
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
Re: packet UDP sur broadcast
Humm tu virtualise ?
Sous windows il renvoi toujours :
OpenNetworkConnection OK !
Hearder Sent Corrrect !
meme avec
Sous windows il renvoi toujours :
OpenNetworkConnection OK !
Hearder Sent Corrrect !
meme avec
Code : Tout sélectionner
connection.i = OpenNetworkConnection("1.1.1.1", 49999,#PB_Network_UDP)
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
Re: packet UDP sur broadcast
oui mon ubuntu et mon debian son virtualisé ! mais je lance le soft sur ces 2 VMs et sur une machine reel debian qui me fait la même chose ...
effectivement tout les IP fonctionne, sauf si je met l'ip de mon broadcast => 192.168.0.255 (mais qui fonctionne sous windows ^^)
effectivement tout les IP fonctionne, sauf si je met l'ip de mon broadcast => 192.168.0.255 (mais qui fonctionne sous windows ^^)
Re: packet UDP sur broadcast
personne n'a le même phénomène en mettant son broadcast ?
alors si je lance une appli dev en C qui lance une requête UDP sur le port 4999 (oui pas 49999 comme dans mon code) sur le 192.168.0.255 il n'y a aucun souci je la voie passer sur mon snif réseau ... Donc mon système est capable d'envoyer des requêtes (on peut exclure firewall, droits divers ...).
moi je fait :
OpenNetworkConnection("192.168.0.255", 4999,#PB_Network_UDP)
SendNetworkData(connection, *Header,70)
ça me retourne -1 ....
donc il y a bien un souci avec purebasic et le broadcast non ? je suis perplexe la, y a personne pour tester sur n'importe quel distrib ?
alors si je lance une appli dev en C qui lance une requête UDP sur le port 4999 (oui pas 49999 comme dans mon code) sur le 192.168.0.255 il n'y a aucun souci je la voie passer sur mon snif réseau ... Donc mon système est capable d'envoyer des requêtes (on peut exclure firewall, droits divers ...).
moi je fait :
OpenNetworkConnection("192.168.0.255", 4999,#PB_Network_UDP)
SendNetworkData(connection, *Header,70)
ça me retourne -1 ....
donc il y a bien un souci avec purebasic et le broadcast non ? je suis perplexe la, y a personne pour tester sur n'importe quel distrib ?
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
Re: packet UDP sur broadcast
test avec OpenNetworkConnection("1.0.0.0", 4999,#PB_Network_UDP) je la vois aussi sous wireshark pourtant elle a pas atteint sont but, je repete ton prog à un problème.
Fait le test sur les VM et la debian si 192.168.0.255 répond sur le port UDP
Fait le test sur les VM et la debian si 192.168.0.255 répond sur le port UDP
Code : Tout sélectionner
nmap -p 4999 -sU 192.168.0.255
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
Re: packet UDP sur broadcast
voila ce que j'ai sur mon debian phisique est sur mes 2 VMs (le temps de réponse change naturellement)
Diskstation> nmap -p 4999 -sU 192.168.0.255
Starting Nmap 5.35DC1 ( http://nmap.org ) at 2013-05-29 21:01 CEST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 0.30 seconds
Par contre !!!
sur mes VMs, j'ai un retour sur l'ip 192.168.0.11 (tablette en wifi), que je n'ai pas sur ma debian phisique :/
Diskstation> nmap -p 4999 -sU 192.168.0.255
Starting Nmap 5.35DC1 ( http://nmap.org ) at 2013-05-29 21:01 CEST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 0.30 seconds
Par contre !!!
sur mes VMs, j'ai un retour sur l'ip 192.168.0.11 (tablette en wifi), que je n'ai pas sur ma debian phisique :/
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
Re: packet UDP sur broadcast
J'ai tester le code sur mon serveur interne 192.168.1.3 j'ai juste un serveur web actif puis sur un IP ou ya rien
En TCP retour OK
En TCP sur une IP bidon retour KO
En UDP retour OK
En UDP sur ip bidon retour OK
Va comprendre charles .....
J'ai pas nmap sur OSX je l'install et je te fait un retour
En TCP retour OK
Code : Tout sélectionner
connection.i = OpenNetworkConnection("192.168.1.3", 80,#PB_Network_TCP)
Debug connection.i
Code : Tout sélectionner
connection.i = OpenNetworkConnection("192.168.1.133", 80,#PB_Network_TCP)
Debug connection.i
Code : Tout sélectionner
connection.i = OpenNetworkConnection("192.168.1.3", 80,#PB_Network_UDP)
Debug connection.i
Code : Tout sélectionner
connection.i = OpenNetworkConnection("192.168.1.133", 80,#PB_Network_UDP)
Debug connection.i
Code : Tout sélectionner
ping 192.168.1.133
PING 192.168.1.133 (192.168.1.133): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
J'ai pas nmap sur OSX je l'install et je te fait un retour
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
Re: packet UDP sur broadcast
Voici un autre test (sur le bon port ^^) mais sur l'ip de la machine qui est cencé me repondre (ne fonctionne toujours pas si je met 192.168.0.255)
Diskstation> nmap -p 49999 -sU 192.168.0.253
Starting Nmap 5.35DC1 ( http://nmap.org ) at 2013-05-29 21:16 CEST
Nmap scan report for Diskstation (192.168.0.253)
Host is up.
PORT STATE SERVICE
49999/udp open|filtered unknown
MAC Adress: xxxxxxxxxxxxxxxxxxxxxxxxxx
Nmap done: 1 IP address (1 host up) scanned in 2.11 seconds
Diskstation> nmap -p 49999 -sU 192.168.0.253
Starting Nmap 5.35DC1 ( http://nmap.org ) at 2013-05-29 21:16 CEST
Nmap scan report for Diskstation (192.168.0.253)
Host is up.
PORT STATE SERVICE
49999/udp open|filtered unknown
MAC Adress: xxxxxxxxxxxxxxxxxxxxxxxxxx
Nmap done: 1 IP address (1 host up) scanned in 2.11 seconds
Dernière modification par lolvince le mer. 29/mai/2013 20:23, modifié 1 fois.
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
Re: packet UDP sur broadcast
Code : Tout sélectionner
sudo nmap -p 80 -sU 192.168.1.3
Starting Nmap 6.25 ( http://nmap.org ) at 2013-05-29 21:18 CEST
Nmap scan report for 192.168.1.3
Host is up (0.000090s latency).
PORT STATE SERVICE
80/udp closed http
Code : Tout sélectionner
sudo nmap -p 80 -sU 192.168.1.133
Starting Nmap 6.25 ( http://nmap.org ) at 2013-05-29 21:18 CEST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 0.50 seconds
Dernière modification par doudouvs le mer. 29/mai/2013 20:30, modifié 2 fois.
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
Re: packet UDP sur broadcast
ping 192.168.0.255 sans pong = machine out ou inaccessible
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
Re: packet UDP sur broadcast
J'ai fait de la DOC j'ai trouver ça "UDP est un protocole asynchrone et ne peut pas être testé pour sa connectivité." donc a part nmap qui te donne des informations sur la connection....
A part faire un serveur UDP qui te donne un retour je ne vois pas d'autre solution
A part faire un serveur UDP qui te donne un retour je ne vois pas d'autre solution
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
Re: packet UDP sur broadcast
Bon je me suis dit je test d'autre commande comme je suis fana de linux et surtout de voir l'homme l'invisible ou plutôt la machine invisible
Ben merde il répond -- ohhhh ya personne sur la 33 docteur c'est grave !!! dis 33 Mais Brigitte je suis pas malade.
Code : Tout sélectionner
nc -vzu 33.33.33.33 806
Connection to 33.33.33.33 806 port [udp/http] succeeded!
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
Re: packet UDP sur broadcast
=> non non tu as bien lu, j'ai corrigé juste derrière ^^doudouvs a écrit :L'ip de la chine ???? >> ho mince je lis n'importe quoi chine au lieu de machine
bon je vais tester sur un autre linux sur un autre réseau (192.168.1.x) de pinguer son broadcast (192.168.1.255) voir ce que cela donne....