IP

Bonjour à vous, je suis actuellement sur un projet dont j'ai besoins d'un web serveur, le problème c'est que je n'ai pas d'adresse IP sur mon shield ethernet et je n'arrive pas à lui en attribuer une. J'ai essayé beaucoup de programme qui consiste à faire apparaitre l'IP sur le moniteur série, mais le problème c'est qu'il me donne l'adresse ip : 0.101.101.101, je ne comprends vraiment pas pourquoi. Pouvez vous m'aider?

bonjour, un code a présenter? plage ip du réseau? matériel utilisé?

Salut !

Si je comprends bien tu souhaites te servir du arduino comme d'un serveur HTTP et donc y accéder, par exemple, depuis ton navigateur via son IP ?

Tu peux normalement forcer l'IP du shield ethernet mais ça reste plus propre de laisser le DHCP lui en attribuer une je trouve (ne serais-ce que parce que rien ne te dis si l'IP que tu souhaite est prise/utilisable ou non).

Laisser le DHCP attribuer une IP n'empêche pas pour autant de fixer une IP à ton shield. En effet dans ton code tu définis une adresse MAC à ton device. Si tu es chez toi alors dans les paramètres de ta BOX tu pourras attribuer une IP fixe à ton device que tu pourras retrouver dans la liste des devices connectés sur ton réseau. Si t'es pas chez toi vois avec les personnes en charge du réseau. Ou demande-leur une IP que tu puisse utiliser sans risques de collision.

Ton code serait pas mal effectivement pour t'aider au mieux.

Salut merci à vous pour vos réponses,

C'est une carte arduino avec un shield ethernet emboîté dessus, j'ai mon adresse MAC mais pas l'IP, et le problème c'est que le réseau ne trouve pas L'ip que le DHCP lui a normalement donné. Je suis en entreprise donc j'ai demandé a quelqu'un si il trouve le shield sur le réseau et il ne trouve rien donc pour moi c'est que le dhcp n'a pas attribué d'ip, ensuite si je veux l'attribué manuellement, j'ai pris un des exemples qui donne l'adresse IP sur le logiciel arduino et comme je le disais il me renvoie "L'adresse IP est : 0.101.101.101" qu'en pensez vous?

Petite parenthèse, C'est un shield ethernet V2, la LED LINK est censé clignoter mais elle ne clignote en aucun cas. :(

Question très bête, mais on sait jamais, t'as bien branché le câble éthernet ? :p

Copies-nous ton code, sans ça on pourra difficilement t'aider mieux. As-tu essayé l'exemple fourni avec l'IDE arduino ? Le voici si besoin.

Je suis en entreprise donc

en principe dans les entreprises, il n’y a pas de dhcp, pour des raisons de sécurité.
un responsable info attribue à chaque pc du réseau une ip fixe.

donc pour la 3eme fois, le code que tu as mis dans le nono.
que donne un ipconfig sur un pc?

C'est exactement le code que j'utilise dursse donc je ne comprend pas pourquoi ça ne marche pas... :/

#include <SPI.h> // librairie SPI - obligatoire avec librairie Ethernet
#include <Ethernet.h> // librairie Ethernet

// --- Déclaration des constantes utiles ---

// --- Déclaration des constantes des broches E/S numériques ---


// --- Déclaration des constantes des broches analogiques ---

// --- Déclaration des variables globales ---

//--- l'adresse mac = identifiant unique du shield
// à fixer arbitrairement ou en utilisant l'adresse imprimée sur l'étiquette du shield
byte mac[] = {  0x90, 0xA2, 0xDA, 0x00, 0x1A, 0x71 };

//----- l'adresse IP fixe à utiliser pour le shield Ethernet --- 
IPAddress ipLocal(192,168,1,100); // l'adresse IP locale du shield Ethernet
// ATTENTION : il faut utiliser une adresse hors de la plage d'adresses du routeur DHCP
// pour connaitre la plage d'adresse du routeur : s'y connecter depuis un navigateur à l'adresse xxx.xxx.xxx.1
// par exemple : sur livebox : plage adresses DHCP entre .10 et .50 => on peut utiliser .100 pour le shield ethernet

//----- l'adresse IP du serveur DNS à utiliser --- 
//IPAddress serveurDNS(8,8,8,8); // l'adresse du serveur DNS - Google DNS : 8.8.8.8 

//----- l'adresse de la passerelle réseau --- 
// la passerelle est le poste connecté à internet - typiquement le routeur à l'adresse xxx.xxx.xxx.1
//IPAddress passerelle(192,168,1,1); // l'adresse du poste de connexion à internet ou de la box

//----- masque de sous réseau 
//IPAddress masque(255, 255, 255, 0 ); // idem masque sous-réseau des autres postes du réseau et de la box : 255.255.255.0 par défaut


// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---


// ////////////////////////// 2. FONCTION SETUP = Code d'initialisation ////////////////////////// 
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme

void setup()   { // debut de la fonction setup()

// --- ici instructions à exécuter 1 seule fois au démarrage du programme --- 

// ------- Initialisation fonctionnalités utilisées -------  

Serial.begin(115200); // Initialise connexion Série 

//---- initialise la connexion Ethernet avec l'adresse MAC du module Ethernet, l'adresse IP Locale 
//----  +/- l'adresse IP du serveurDNS , l'adresse IP de la passerelle internet et le masque du réseau local

//Ethernet.begin(mac); // forme pour attribution automatique DHCP - utilise plus de mémoire Flash (env + 6Ko)
Ethernet.begin(mac, ipLocal); // forme conseillée pour fixer IP fixe locale
//Ethernet.begin(mac, ipLocal, serverDNS, passerelle, masque); // forme complète

delay(1000); // donne le temps à la carte Ethernet de s'initialiser

Serial.print("L'adresse IP du shield Ethernet est :" ); 

Serial.println(Ethernet.localIP()); 

/* Equivalent détaillé
Serial.print(Ethernet.localIP()[0]), Serial.print("."); 
Serial.print(Ethernet.localIP()[1]), Serial.print(".");
Serial.print(Ethernet.localIP()[2]), Serial.print(".");
Serial.print(Ethernet.localIP()[3]);
*/

/*
Serial.print(ipLocal[0]), Serial.print("."); 
Serial.print(ipLocal[1]), Serial.print(".");
Serial.print(ipLocal[2]), Serial.print(".");
Serial.print(ipLocal[3]);
*/

} // fin de la fonction setup()
// ********************************************************************************

////////////////////////////////// 3. FONCTION LOOP = Boucle sans fin = coeur du programme //////////////////
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension

void loop(){ // debut de la fonction loop()


while(1); // stop loop

} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************


// ////////////////////////// FONCTIONS DE GESTION DES INTERRUPTIONS //////////////////// 


// ////////////////////////// AUTRES FONCTIONS DU PROGRAMME //////////////////// 


// ////////////////////////// Fin du programme ////////////////////

C’est ce genre de programme.
Merci d’avance.

que donne un ipconfig sur un pc?

si dhcp actif, ip fixe doit être en dehors de la plage dhcp.

ipconfig ne donne rien du tout je ne vois aucune trace du shield, que ce soit dans le cmd ou dans le réseau de l'entreprise. Et dans mes programmes je mettais une adresse hors DHCP mais ça ne marchait pas non plus :/ et une fois le programme compiler, sur le moniteur il me donnait l'ip 0.101.101.101 comme je disais au dessus ou si c'était un programme du genre webserver dans les exemples du logiciel, il n'affichait rien sur la page web lorsque je marquer l'ip que j'ai attribué dans l'url :/

Je me demandais si ce n'était pas le shield qui que ne fonctionne pas vu que la LED "LINK" ne clignote pas lors de la transmission de donné. Qu'en pensez vous?

ipconfig donne le résultat du pc sur lequel tu tapes la commande, rien sur le nono.
il y a une plage ip, une ip, un mask, etc…

essaye avec la lib ethernet2, souvent ca résout le pb

en virant l’autre lib pour éviter les conflits

#include <SPI.h>
#include <Ethernet.h>

// network configuration. dns server, gateway and subnet are optional.

 // the media access control (ethernet hardware) address for the shield:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  

// the dns server ip
IPAddress dnServer(192, 168, 0, 1);
// the router's gateway address:
IPAddress gateway(192, 168, 0, 1);
// the subnet:
IPAddress subnet(255, 255, 255, 0);

//the IP address is dependent on your network
IPAddress ip(192, 168, 0, 2);

void setup() {
  Serial.begin(9600);

  // initialize the ethernet device
  Ethernet.begin(mac, ip, dnServer, gateway, subnet);
  //print out the IP address
  Serial.print("IP = ");
  Serial.println(Ethernet.localIP());
}

void loop() {
}

Voilà le programme qui me donne le 0.101.101.101 j’ai reçu mon nouveau shield et sa fait la même chose mais là il m’indique l’ip 0.107.107.107

infobarquee: ipconfig donne le résultat du pc sur lequel tu tapes la commande, rien sur le nono. il y a une plage ip, une ip, un mask, etc...

essaye avec la lib ethernet2, souvent ca résout le pb https://github.com/adafruit/Ethernet2 en virant l'autre lib pour éviter les conflits

Voilà ce que ça donne

Quelqu’un peut m’aider? je suis paumé! :’(

IB t'as donné la solution :

infobarquee: essaye avec la lib ethernet2, souvent ca résout le pb https://github.com/adafruit/Ethernet2

avec une ethernet v2 il faut utiliser la lib ethernet2 en fait avec : - w5100 il faut la lib ethernet - w 5200 ou w5500 il faut la lib ethernet2

en virant l'autre lib pour éviter les conflits

pas vraiment d'accord les 2 peuvent coexister (si pour d'autres projets il utilise un schield ethernet V1) ...

Ça marche !!!! :D Merci a toi tu m'a sauvé toute une journée !!! merci beaucoup! ;)

tant mieux, mais il aurait été bien de donner le résultat d'un ipconfig via un pc au lieu de jouer à la devinette.