MAC-Adresse fortlaufend ausgeben
Hallo!
Benötige eure Hilfe, da ich nichts passendes bei Google gefunden habe.
Unser Lieferant baut und programmiert MAC-Adressen für uns.
Da der nicht mit Hexadezimalzahlungssytem vertraut ist, benötige ich einen Batch-Script für Windows OS, welcher mir fortlaufende MAC-Adressen fortlaufend durchzählt und in einen Textdokument von gewünschte Anzahl aus weiterzählt und abspeichert.
Habe leider noch nie was mit Hexadezimalzahlen gemacht. Zählen kann ich aber
Beispiel:
Geben Sie zuletzt verwendete MAC-Adresse 00:1D:60:4A:<X>:<X> (letzte zwei Stellen):
-> Eingabe: 35:01
Anzahl gebaute Platinen:
->Eingabe: 17
Resultat im Textdocument
1. 00:1D:60:4A:35:02
2. 00:1D:60:4A:35:03
3. 00:1D:60:4A:35:04
4. 00:1D:60:4A:35:05
5. 00:1D:60:4A:35:06
6. 00:1D:60:4A:35:07
7. 00:1D:60:4A:35:08
8. 00:1D:60:4A:35:09
9. 00:1D:60:4A:35:0A
10. 00:1D:60:4A:35:0B
11. 00:1D:60:4A:35:0C
12. 00:1D:60:4A:35:0D
14. 00:1D:60:4A:35:0E
15. 00:1D:60:4A:35:0F
16. 00:1D:60:4A:35:10
17. 00:1D:60:4A:35:11
Benötige eure Hilfe, da ich nichts passendes bei Google gefunden habe.
Unser Lieferant baut und programmiert MAC-Adressen für uns.
Da der nicht mit Hexadezimalzahlungssytem vertraut ist, benötige ich einen Batch-Script für Windows OS, welcher mir fortlaufende MAC-Adressen fortlaufend durchzählt und in einen Textdokument von gewünschte Anzahl aus weiterzählt und abspeichert.
Habe leider noch nie was mit Hexadezimalzahlen gemacht. Zählen kann ich aber
Beispiel:
Geben Sie zuletzt verwendete MAC-Adresse 00:1D:60:4A:<X>:<X> (letzte zwei Stellen):
-> Eingabe: 35:01
Anzahl gebaute Platinen:
->Eingabe: 17
Resultat im Textdocument
1. 00:1D:60:4A:35:02
2. 00:1D:60:4A:35:03
3. 00:1D:60:4A:35:04
4. 00:1D:60:4A:35:05
5. 00:1D:60:4A:35:06
6. 00:1D:60:4A:35:07
7. 00:1D:60:4A:35:08
8. 00:1D:60:4A:35:09
9. 00:1D:60:4A:35:0A
10. 00:1D:60:4A:35:0B
11. 00:1D:60:4A:35:0C
12. 00:1D:60:4A:35:0D
14. 00:1D:60:4A:35:0E
15. 00:1D:60:4A:35:0F
16. 00:1D:60:4A:35:10
17. 00:1D:60:4A:35:11
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 53955497144
Url: https://administrator.de/contentid/53955497144
Ausgedruckt am: 21.11.2024 um 23:11 Uhr
6 Kommentare
Neuester Kommentar
# mac prefix
$macprefix = '00:1D:60:4A:'
# Ausgabedatei
$outfile = '.\macs.txt'
do{
$suffix = Read-Host "Geben Sie zuletzt verwendete MAC-Adresse 00:1D:60:4A:<XX>:<XX> (letzte zwei Stellen)"
}until($suffix -match '^[a-f0-9]{2}:[a-f0-9]{2}$')
$numparts = 0
do{
$num = Read-Host "Anzahl gebauter Platinen eingeben"
}until([int]::TryParse($num,[ref]$numparts) -and $numparts -gt 0 -and $numparts -le 0xFFFF )
$dec = [Convert]::ToInt64("$macprefix$suffix".replace(':',''),16) + 1
1..$numparts | %{
[regex]::matches($dec.ToString('X').padleft(12,'0'),'..').Value -join ':'
$dec++
} | set-content $outfile
Mit ein paar "Tricks" geht das auch in Windows Batch.
Die Prüfung ob die Eingabe Sinn macht habe ich weggelassen.
Beispielausgabe:
Die Prüfung ob die Eingabe Sinn macht habe ich weggelassen.
@echo off
setlocal
set base=00:1D:00:4A
set /p base=Eingabe Base MAC (%base%):
set start=ff:f0
set /p start=Eingabe Start MAC (%start%):
set count=20
set /p count=Eingabe Zahl der Platinen (%count%):
set mac=%base::=%%start::=%
set smac=%mac:~0,4%
set /A dmac=0x%mac:~-8%
for /L %%a in (1,1,%count%) do call :calcmac %%a
exit /b
:calcmac
set /A cmac=%dmac%+%~1
cmd /c exit %cmac%
set nmac=%=ExitCode%
echo %~1. %smac:~0,2%:%smac:~2,2%:%nmac:~0,2%:%nmac:~2,2%:%nmac:~4,2%:%nmac:~6,2%
exit /b
Beispielausgabe:
Eingabe Base MAC (00:1D:00:4A):
Eingabe Start MAC (ff:f0):
Eingabe Zahl der Platinen (20):
1. 00:1D:00:4A:FF:F1
2. 00:1D:00:4A:FF:F2
3. 00:1D:00:4A:FF:F3
4. 00:1D:00:4A:FF:F4
5. 00:1D:00:4A:FF:F5
6. 00:1D:00:4A:FF:F6
7. 00:1D:00:4A:FF:F7
8. 00:1D:00:4A:FF:F8
9. 00:1D:00:4A:FF:F9
10. 00:1D:00:4A:FF:FA
11. 00:1D:00:4A:FF:FB
12. 00:1D:00:4A:FF:FC
13. 00:1D:00:4A:FF:FD
14. 00:1D:00:4A:FF:FE
15. 00:1D:00:4A:FF:FF
16. 00:1D:00:4B:00:00
17. 00:1D:00:4B:00:01
18. 00:1D:00:4B:00:02
19. 00:1D:00:4B:00:03
20. 00:1D:00:4B:00:04