Arduino DNS на локальном - PullRequest
       13

Arduino DNS на локальном

0 голосов
/ 17 марта 2019

Как мне ссылаться на адрес DNS-сервера IP, подсети IP, шлюза IP?

Как вы можете видеть из приведенного ниже кода, я пытался, но все, что я получаю, это следующая ошибка,

"У класса EthernetClass нет члена, называемого подсетью".

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

// Network configuration
// Note : DNS server, gateway and subnet are optional.

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  

//  The IP address of Arduino Ethernet shield.
IPAddress myLocalIP(192, 168, 100, 2);

// The DNS server IP.
IPAddress dnsServer(192, 168, 100, 1);

// The router's gateway IP address.
IPAddress gateway(192, 168, 0, 1);

// the subnet:
IPAddress subnet(255, 255, 255, 0);


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

  Ethernet.begin(mac, myLocalIP, subnet);    // Initialize the ethernet device
//  Ethernet.begin(mac, ip, dnServer, gateway, subnet);

  Serial.print("Local IP = ");  // Print out the IP address of the shield.
  Serial.println(Ethernet.localIP());
  Serial.print("DNS Address = ");
  Serial.println(Ethernet.IPAddress.subnet() );
}  // End setup.

void loop()
{

}  // End loop.

Wallek876, спасибо за информацию.

Я также добавил другие, а именно subnetMask, gatewayIP, однако, когда я использовал документированный метод (согласно вашей ссылке) для печати MAC-адреса, а именно - Ethernet.MACAddress (macBuffer); Я получил ошибку.

Документированный код - (скопированный из документации) выглядит следующим образом:

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

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(10, 0, 0, 177);

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  Ethernet.begin(mac, ip);

  byte macBuffer[6];  // create a buffer to hold the MAC address
  Ethernet.MACAddress(macBuffer); // fill the buffer
  Serial.print("The MAC address is: ");
  for (byte octet = 0; octet < 6; octet++) {
    Serial.print(macBuffer[octet], HEX);
    if (octet < 5) {
      Serial.print('-');
    }
  }
}

void loop () {}

Ошибка в линии Ethernet.MACAddress (macBuffer); MAC-адрес не определен.

Я попробовал несколько других решений, но все безрезультатно, поэтому некоторые предложения будут с благодарностью приняты.

...