Forçage IP dns server bibliotheque UIPEthernet.h

Bonjour à tous,

Je cherche comment je peux forcer l'adresse IP de la DNS server.
Dans le programme si dessous, je me connecte au réseau par le biais d'un module ENC28J60 est la bibliothèque UIPEthernet.h, et j'ai un retour avec les print suivant qui ressemble à ça :

print :

Serial.print(F("localIP: "));
  Serial.println(Ethernet.localIP());
  Serial.print(F("subnetMask: "));
  Serial.println(Ethernet.subnetMask());
  Serial.print(F("gatewayIP: "));
  Serial.println(Ethernet.gatewayIP());
  Serial.print(F("dnsServerIP: "));
  Serial.println(Ethernet.dnsServerIP());

Résultat dans la console :

localIP: 192.168.0.47
subnetMask: 255.25..255.0
gatewayIP:  192.168.0.1
dnsServerIP: 192.168.0.1

Seulement pour dnsServerIP: 192.168.0.1 je ne voudrais pas qu'il me renvoi cette valeur, mais je voudrais lui forcer une adresse ip que j'aurais définit moi même par exemple 10.150.0.2

Comment peut on forcer la valeur trouver par l’exécution du code ?

J'espère avoir été clair, sinon n’hésitez pas à me demander ce qui manque.

Voici également le programme test :

#include <SPI.h>
#include <UIPEthernet.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
#include <ConnexParams.h>

EthernetClient client;
MySQL_Connection conn(&client);
MySQL_Cursor* cursor;

unsigned long previousMillis2;
char insert_Sql_1[140];

char  Var2;         // déclaration de la variable Var2 de type char
//IPAddress serverAddress(10, 10, 10, 10);


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

  Serial.println("\nDEBUT DU SETUP");
  Serial.flush();

  //Wire.begin(); // Initialisation de la communication I2C
  SPI.begin();
 
  
 uint8_t mac[6] = {0x00,0x01,0x02,0x03,0x04,0x05};
 IPAddress ip(192, 168, 0, 47);
  Ethernet.begin(mac,ip);

  Serial.print(F("localIP: "));
  Serial.println(Ethernet.localIP());
  Serial.print(F("subnetMask: "));
  Serial.println(Ethernet.subnetMask());
  Serial.print(F("gatewayIP: "));
  Serial.println(Ethernet.gatewayIP());
  Serial.print(F("dnsServerIP: "));
  Serial.println(Ethernet.dnsServerIP());

  Serial.print("Connecting to SQL...  ");
  if (conn.connect(serverAddress, 3306, user_BD, passw_BD))
    Serial.println(F("OK."));
  else
    Serial.println(F("FAILED."));

  // create MySQL cursor object
  cursor = new MySQL_Cursor(&conn);


  
 
Serial.println();


}


void loop () {
uint8_t annee1,mois1,jour1,heure1,minute1,seconde1; 
int var1 = 124;
// Test de létat du bouton pour affecter la variable Var2

Var2 = 'A'; //la broche led passe au niveau haut
    
  delay(10000);

      annee1   = 1;
      mois1    = 1;
      jour1    = 1;
      heure1   = 1;
      minute1  = 1;
      seconde1 = 1;

envoi(jour1, mois1, annee1, heure1, minute1, seconde1, var1,Var2);

     
    //}
    
  //}
}

// Fonction extraireDateCompil() pour extraire la date

void envoi(int jour1, int mois1, int annee1, int heure1, int minute1, int seconde1, int Var1, char Var2) {

  int interv = 0;
  for (int i = 0; i < 3; i++) {
    unsigned long currentMillis2 = millis();
    if (currentMillis2 - previousMillis2 >= interv) {
      // save the last time you updated the DHT values
      previousMillis2 = currentMillis2;
      if (!conn.connected()) {
        if (conn.connect(serverAddress, 3306, "User_BDD", "MDP_BDD")) {
          Serial.println(F("connection OK."));
        } else {
          Serial.println(F("connection FAILED."));
           interv = 60000;
          return;
        }
      }
    }
  }


  
  sprintf(insert_Sql_1, "INSERT INTO u1652222_prem_db.BDD1 (jour,mois,annee,heure,minute,seconde,var_1,var_2) VALUES (%d,%d,%d,%d,%d,%d,%d,'%c')", jour1,mois1,annee1,heure1,minute1,seconde1,Var1,Var2);
 Serial.println(insert_Sql_1);
  cursor->execute(insert_Sql_1);

  if (conn.connected()) {
    conn.close();
  }
}

Merci d'avance

ça semble logique de passer par votre box et lui laisser faire le calcul des routes non ?

sinon il y a différentes formes de begin

Ethernet.begin(Mac);
Ethernet.begin(mac, ip);
Ethernet.begin(mac, ip, dns);
Ethernet.begin(mac, ip, dns, gateway);
Ethernet.begin(mac, ip, dns, gateway, subnet);

Ok merci J-M-L,

Oui je sais mais je ne sais pas pourquoi il ne me trouve pas la bonne DNS.

Par contre tu as trouvé ou qu'il existait toutes ces formes de begin ?
En épluchant la bibliothèque ?

comme il se doit, dans la doc :wink:

vous voulez dire que votre box ne fait pas de routage correctement ?
si votre PC est connecté à cette box aussi en WiFi et avec DHCP , quel DNS obtenez vous ?
si vous tapez https://forum.arduino.cc dans un navigateur, arrivez vous sur le forum ? (si oui c'est que le routage pour le DNS fonctionne)

C'est un peu compliqué et je ne suis même pas sur d'avoir j'ai vraiment besoin de DNS pour mon cas particulier, mais au cas ou, je voulais savoir comment forcer la DNS.

En tout cas un grand merci J-M-L.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.