Forum: Mikrocontroller und Digitale Elektronik Wemos D1 Mini - Hostname und MAC-Adresse nicht änderbar


von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich möchte mit dem folgenden Code Hostname und MAC-Adresse eines D1 Mini 
ändern. (Programmiere in der Arduino-IDE)

Der Code wird zwar anstandslos compiliert, der Effekt ist aber absolut 
Null: Weder MAC noch Hostname werden geändert, sondern stehen eisern auf 
Werkseinstellungen.
1
  WiFi.hostname(host);
2
  WiFi.macAddress(mac);
3
  wifi_set_macaddr(STATION_IF, mac);
4
  WiFi.mode(WIFI_STA);
5
  WiFi.begin(ssid,pass); delay(100);
6
7
  wifi_connect(); delay(100);
8
  server.begin(); delay(100);

Alles andere funktiniert wie vorgesehen. Die Variablen für host, ssid 
und
pass sind vom Typ "const char* = ...", mac ist ein Array of Byte.

Was ist falsch? Danke für Tips.

von Marcel (Gast)


Lesenswert?

Hallo Frank E.,

kannst du den gesammten Code posten und die angaben, die du nicht 
angeben willst einfach abändern.
Möglicherweise ist bei der Deklarierung oder Initialisirung der ssid, 
mac, host, .. etwas falsch gelaufen.
Ich habe den Hostnamen und eine Feste IP auch mal genutzt, testweise, 
das hat eigentlich einwandfrei funktioniert, so kann ich auf anhieb 
erstmal keinen Fehler in deinem Code sehen.

LG
Marcel

von Jannik (Gast)


Lesenswert?

Hallo Frank,

die Mac Adresse wird nicht gesetzt, da du dir den Inhalt der Variable 
mac durch die Funktion WiFi.macAddress(mac) wahrscheinlich 
überschreibst. Diese Funktion ruft intern die SDK Funktion 
wifi_get_macaddr auf, welche als Aufrufparameter auch die Variable 
übergeben bekommt.

von Harry L. (mysth)


Lesenswert?

Wozu sollte man auch die MAC-Adresse ändern?
Die ist eindeutig und das reicht vollkommen aus.

Mir fällt kein plausibler Grund ein

von honk (Gast)


Lesenswert?

Harry L. schrieb:
> Wozu sollte man auch die MAC-Adresse ändern?
> Die ist eindeutig und das reicht vollkommen aus.
>
> Mir fällt kein plausibler Grund ein


Nur weil Dir die Phantasie fehlt, ist das noch kein Grund für andere, 
nicht kreativ zu sein...

von honk (Gast)


Lesenswert?

Frank E. schrieb:
>
1
>   WiFi.hostname(host);
2
>   WiFi.macAddress(mac);
3
>   wifi_set_macaddr(STATION_IF, mac);
4
>   WiFi.mode(WIFI_STA);
5
>   WiFi.begin(ssid,pass); delay(100);
6
> 
7
>   wifi_connect(); delay(100);
8
>   server.begin(); delay(100);
9
> 
10
>


Mit
1
WiFi.hostname(host);
holst Du die aktuelle Mac-Adresse.

Mit
1
wifi_set_macaddr(STATION_IF, mac);
setzt Du sie auf den schon bestehenden Wert.
Ist also sinnlos.
Schreib da mal eine neue rein.

von honk (Gast)


Lesenswert?

Sollte natürlich
1
WiFi.macAddress(mac);

bei der ersten Zeile heissen.

Beitrag #5546703 wurde von einem Moderator gelöscht.
von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Harry L. schrieb:
> Wozu sollte man auch die MAC-Adresse ändern?
> Die ist eindeutig und das reicht vollkommen aus.
>
> Mir fällt kein plausibler Grund ein

Wenn Geräte im Verbund z.B. anhand der MAC-Adressen erkannt werden und 
eine Netzwerkkarte kaputt gegangen ist - dann ist man froh, wenn man das 
Ersatzgerät auf die alte MAC umprogrammieren kann, weil man dann absolut 
nichts umkonfigurieren muss.

von Harry L. (mysth)


Lesenswert?

Wolfgang R. schrieb:
> Harry L. schrieb:
>> Wozu sollte man auch die MAC-Adresse ändern?
>> Die ist eindeutig und das reicht vollkommen aus.
>>
>> Mir fällt kein plausibler Grund ein
>
> Wenn Geräte im Verbund z.B. anhand der MAC-Adressen erkannt werden und
> eine Netzwerkkarte kaputt gegangen ist - dann ist man froh, wenn man das
> Ersatzgerät auf die alte MAC umprogrammieren kann, weil man dann absolut
> nichts umkonfigurieren muss.

Es ist ja wohl einfacher, die neue MAC-Adresse im DHCP-Server zu 
hinterlegen, als die MAC-Adresse des Gerätes zu ändern.

Das ist die normale Vorgehensweise.
Alles Andere ist Frickellei von Amateuren die keine Ahnung haben.

Beitrag #5546749 wurde von einem Moderator gelöscht.
Beitrag #5546758 wurde von einem Moderator gelöscht.
von Horst (Gast)


Lesenswert?

Harry L. schrieb:
> Es ist ja wohl einfacher, die neue MAC-Adresse im DHCP-Server zu
> hinterlegen, als die MAC-Adresse des Gerätes zu ändern.

Kleiner Tip: MAC-Adressen werden nicht nur von DHCP-Servern benutzt und 
selbst da führt es, aufgrund der üblichen Zentralisierung der IT, 
schneller zum Ziel die MAC zu übernehmen und später alles zu bereinigen.
Bei uns laufen die Anlagen 24/7, die zentrale IT arbeitet aber nur 8/5, 
ist billiger.

von Harry L. (mysth)


Lesenswert?

Horst schrieb:
> Harry L. schrieb:
>> Es ist ja wohl einfacher, die neue MAC-Adresse im DHCP-Server zu
>> hinterlegen, als die MAC-Adresse des Gerätes zu ändern.
>
> Kleiner Tip: MAC-Adressen werden nicht nur von DHCP-Servern benutzt und
> selbst da führt es, aufgrund der üblichen Zentralisierung der IT,
> schneller zum Ziel die MAC zu übernehmen und später alles zu bereinigen.
> Bei uns laufen die Anlagen 24/7, die zentrale IT arbeitet aber nur 8/5,
> ist billiger.

Das Unvermögen der BWLer, die Notwendigkeit eines 24/7 verfügbaren 
Admin-Team zu erkennen ("die gammeln ja nur den ganzen Tag vor dem 
Rechner rum") ist keine hinreichende Begründung für so eine 
Vorgehensweise.

Wenn so eine "wichtige MAC" an mehr als einer Stelle hinterlegt ist, ist 
bereits im Vorfeld ganz viel schief gelaufen.

Das ist genau die Art von Frickellei, die früher oder später ins Chaos 
führt.

: Bearbeitet durch User
von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Harry L. schrieb:
> Wenn so eine "wichtige MAC" an mehr als einer Stelle hinterlegt ist, ist
> bereits im Vorfeld ganz viel schief gelaufen.
>
> Das ist genau die Art von Frickellei, die früher oder später ins Chaos
> führt.

Ach Harry, hätten sie dich nur vorher schon in der Planungsphase 
dabeigehabt...

Dein arrogantes Gehabe hilft nicht weiter, wenn die Dinge nun mal so 
sind, wie sie sind - dann kann es durchaus die schnellste und günstigste 
Lösung sein, die MAC zu ändern. Kann übrigens auch Hardware-Dongles 
betreffen...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.