packet UDP sur broadcast

Codes specifiques à Linux
lolvince
Messages : 40
Inscription : lun. 11/déc./2006 16:11

packet UDP sur broadcast

Message par lolvince »

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
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: packet UDP sur broadcast

Message par doudouvs »

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)
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
lolvince
Messages : 40
Inscription : lun. 11/déc./2006 16:11

Re: packet UDP sur broadcast

Message par lolvince »

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 :(
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: packet UDP sur broadcast

Message par doudouvs »

Humm tu virtualise ?

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
lolvince
Messages : 40
Inscription : lun. 11/déc./2006 16:11

Re: packet UDP sur broadcast

Message par lolvince »

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 ^^)
lolvince
Messages : 40
Inscription : lun. 11/déc./2006 16:11

Re: packet UDP sur broadcast

Message par lolvince »

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 ?
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: packet UDP sur broadcast

Message par doudouvs »

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

Code : Tout sélectionner

nmap -p 4999 -sU 192.168.0.255
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
lolvince
Messages : 40
Inscription : lun. 11/déc./2006 16:11

Re: packet UDP sur broadcast

Message par lolvince »

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 :/
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: packet UDP sur broadcast

Message par doudouvs »

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

Code : Tout sélectionner

connection.i = OpenNetworkConnection("192.168.1.3", 80,#PB_Network_TCP)
Debug connection.i
En TCP sur une IP bidon retour KO

Code : Tout sélectionner

connection.i = OpenNetworkConnection("192.168.1.133", 80,#PB_Network_TCP)
Debug connection.i
En UDP retour OK

Code : Tout sélectionner

connection.i = OpenNetworkConnection("192.168.1.3", 80,#PB_Network_UDP)
Debug connection.i
En UDP sur ip bidon retour OK

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
Va comprendre charles .....


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
lolvince
Messages : 40
Inscription : lun. 11/déc./2006 16:11

Re: packet UDP sur broadcast

Message par lolvince »

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
Dernière modification par lolvince le mer. 29/mai/2013 20:23, modifié 1 fois.
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: packet UDP sur broadcast

Message par doudouvs »

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
L'ip de la chine ???? >> ho mince je lis n'importe quoi chine au lieu de machine
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
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: packet UDP sur broadcast

Message par doudouvs »

ping 192.168.0.255 sans pong = machine out ou inaccessible
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: packet UDP sur broadcast

Message par doudouvs »

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
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: packet UDP sur broadcast

Message par doudouvs »

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

Code : Tout sélectionner

nc -vzu 33.33.33.33 806
Connection to 33.33.33.33 806 port [udp/http] succeeded!
Ben merde il répond -- ohhhh ya personne sur la 33 docteur c'est grave !!! dis 33 Mais Brigitte je suis pas malade.
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
lolvince
Messages : 40
Inscription : lun. 11/déc./2006 16:11

Re: packet UDP sur broadcast

Message par lolvince »

doudouvs a écrit :L'ip de la chine ???? >> ho mince je lis n'importe quoi chine au lieu de machine
=> non non tu as bien lu, j'ai corrigé juste derrière ^^

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....
Répondre