Puncte:0

Detectarea mac invalidă a serverului dhcpd

drapel jp

În configurația mea dhcp, am un cârlig de comitere pentru a salva informațiile despre dispozitiv. Problema mea este că unele dintre adresele Mac devin invalide:

8:7c:39:cf:b6:3f - ar trebui să înceapă cu zero

8:d0:b7:52:f9:68 - si asta

Ale mele dhcpd.conf

set clientmac = binary-to-ascii(16,8,":",substring(hardware,1,6));

djdomi avatar
drapel za
reamintește-ți că ar trebui să adaugi cum ar fi ce sistem de operare folosești și ce încerci să rezolvi?
Puncte:1
drapel in

Depinde de ce folosiți pentru a-l analiza, se poate argumenta că este complet valid să omiteți zerourile de prefix și asta facem de cele mai multe ori, deoarece nu există o definiție a câte cifre ar trebui să existe.

Cu toate acestea, dacă sărim peste partea despre dacă acest lucru este invalid și de ce sau nu și întrebăm în schimb „Cum obțin acest lucru în formatul dorit”, putem oferi un răspuns.

În acest caz isc are un articol KB despre asta

Acesta nu este un bug. Problema este că funcția binary-to-ascii nu „știe” nimic despre utilizarea intenționată a cifrelor binare convertite și este neobișnuit să includă zerouri la început la tipărirea valorilor numerice.

Cu toate acestea, cu puțină manipulare suplimentară, este încă posibil să obțineți rezultatul dorit:

set foo = concat (
sufix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,1,1))),2), ":",
sufix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,2,1))),2), ":",
sufix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,3,1))),2), ":",
sufix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,4,1))),2), ":",
sufix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,5,1))),2), ":",
sufix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,6,1))),2)
);

(Funcționează prin conversia fiecărei „componente” separat, adăugându-i un zero inițial (în cazul în care este nevoie de unul); luând ultimele două caractere hexadecimale și apoi concatenându-le pe toate împreună din nou.)

drapel jp
Vă mulțumim pentru timpul acordat pentru a răspunde la această problemă. Soluție bună.
drapel in
Dacă asta îți rezolvă întrebarea, te rog să o marchezi ca răspuns ;)
drapel jp
Nu inca, inca caut o solutie mai buna. În prezent folosesc soluția mea alternativă, care este „dacă mac_address este invalidă, atunci arp ip_address”, care este în prezent mai scurtă decât șirurile de concatenare. Dar oricum ai o soluție bună.
drapel in
Întrebarea este despre adresa MAC „invalidă” și cum să le aveți cu zerouri prefixate? Sper că atunci găsiți o soluție bună pentru problema dvs. reală, chiar dacă aceasta pare diferită de această întrebare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.