Kleines Tool für die physische Adresse

jasonhudgens

Cadet 3rd Year
Registriert
März 2018
Beiträge
53
Guten Abend zusammen

Habe leider keine grosse Programmiererfahrungen, diesbezüglich Frage ich einfach hier mal nach.
Ich brauche ein Tool/Anwendung, das man auf einem Windows-Rechner starten kann und es die physische Adresse des Ethernet-Adapter anzeigt. Evtl. mit einem kleinen Text à la "Senden Sie diese Adresse an die folgende Mail-Adresse: support@xy.com". Auf das GUI kommt es nicht an, kann ganz schlicht gehalten werden. Was würd ihr mir da empfehlen? Das Tool sollte ohne Adminrechte, ohne Installation gestartet werden können.

Besten Dank für die Vorschläge.
 
das geht mit Windows Mittel.

Start / Ausführen
da dann CMD eingeben, und in dem Fenster IPCONFIG / ALL eingeben.

Da bekommste dann von allen Geräten / Karten die IP angezeigt
 
Wie wärs mit einem kleinen BAT-Programm?
Code:
@echo off

echo.
echo ################################################################
echo Senden Sie bitte einen Screenshot dieses Fensters an: xyz@muu.de
echo ################################################################
echo.
ipconfig /all
echo.
pause
764954
 
  • Gefällt mir
Reaktionen: John Sinclair
oder so, als Textdatei gespeichert IP-Adresse.txt
Code:
@echo off

echo.
echo ################################################################
echo Senden Sie bitte einen Screenshot dieses Fensters an: xyz@muu.de
echo ################################################################
echo.
ipconfig /all > "c:\Users\%USERNAME%\Documents\IP-Adresse.txt"
echo.
pause
 
  • Gefällt mir
Reaktionen: Valeria
@John Sinclair
Hat man immer Schreibrechte auf das Userverzeichnis? Ich hoffe doch.
Müssen nur noch die User auch hinfinden... DAU-sicher?
 
  • Gefällt mir
Reaktionen: John Sinclair
ja, ich habe sogar unter c:\Users\%USERNAME%\
ein Verzeichnis angelegt mit Namen Log-Datei
bei mir sieht es dann so aus.

ipconfig /all > "c:\Users\%USERNAME%\Log-Datei\IP-Adresse.txt"

Weil alles was unter dem angemeldeten User ist hat keine Sperre
 
Wenn, dann doch bitte: ipconfig /all > "%Userprofile%\Log-Datei\IP-Adresse.txt"!
 
  • Gefällt mir
Reaktionen: SomeDifferent und John Sinclair
Stimmt ;)
 
Mit WMIC kann man sich eine Liste ausgeben lassen. Wenn mehrere Adapter vorhanden sind (WLAN, LAN, Tunnel, ..) steht dabei was was ist.
wmic nic get AdapterType, Name, MACAddress>c:\log\bla.txt

Code:
AdapterType     MACAddress         Name
                                   Microsoft Kernel Debug Network Adapter
Ethernet 802.3  XX:XX:XX:XX:XX:XX  Xbox Wireless Adapter for Windows
Ethernet 802.3  XX:XX:XX:XX:XX:XX  Intel(R) Ethernet Connection I217-V
                                   Bluetooth Device (RFCOMM Protocol TDI)
Ethernet 802.3  XX:XX:XX:XX:XX:XX  Bluetooth Device (Personal Area Network) #2
Tunnel                             Teredo Tunneling Pseudo-Interface
                                   WAN Miniport (SSTP)
                                   WAN Miniport (IKEv2)
                                   WAN Miniport (L2TP)
                                   WAN Miniport (PPTP)
                                   WAN Miniport (PPPOE)
Ethernet 802.3  XX:XX:XX:XX:XX:XX  WAN Miniport (IP)
Ethernet 802.3  XX:XX:XX:XX:XX:XX  WAN Miniport (IPv6)
Ethernet 802.3  XX:XX:XX:XX:XX:XX  WAN Miniport (Network Monitor)

Edit:
Wenn du ein bisschen fummelst und du einen einfachen SMTP Server irgendwo erreichbar hast, kannst du die TXT Datei mit blat zusenden. Das ist ein Kommandozeilen Mail Programm. Dort kannst du SMTP, Betreff, Empfänger, Absender, Anhang usw. fest hinterlegen und dir zusenden lassen. Keine Ahnung ob die blat SSL/TLS kann. Habe es bisher nur ohne Verschlüsselung verwendet.
http://www.blat.net/
Also im Sinne von:
1. Skript liest adressen aus und speichert eine txt Datei.
2. Skript versendet mit blat.exe die txt Datei an dich.
3. ???
4. Profit
 
Zuletzt bearbeitet: (Mail Versand)
  • Gefällt mir
Reaktionen: John Sinclair
Ab .NET 2.0 würde das in C# so aussehen:
C#:
using System.Net.NetworkInformation;

foreach(NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{   
    Console.WriteLine("Interface {0}, MAC: {1} ",ni.Name, ni.GetPhysicalAddress());
}

Wenn Du etwas C# kannst ist das in einer Minute VS gemacht. Funktioniert auch in Mono :).
Wenn nicht, sag bescheid was es genau anzeigen soll dann tippe ich das schnell runter sofern kein fertiges Programm Deine Anforderungen erfüllt.
 
  • Gefällt mir
Reaktionen: new Account()
Besten Dank für die zahlreichen Antworten!
Das in ein GUI verpacken, wäre aufwendig? Es geht wirklich darum den Users es so einfach wie möglich zu machen. Angezeigte physikalische Adresse in die Zwischenablage und per Mail versenden.
Ergänzung ()

K7Fan schrieb:
Ab .NET 2.0 würde das in C# so aussehen:
C#:
using System.Net.NetworkInformation;

foreach(NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{  
    Console.WriteLine("Interface {0}, MAC: {1} ",ni.Name, ni.GetPhysicalAddress());
}

Wenn Du etwas C# kannst ist das in einer Minute VS gemacht. Funktioniert auch in Mono :).
Wenn nicht, sag bescheid was es genau anzeigen soll dann tippe ich das schnell runter sofern kein fertiges Programm Deine Anforderungen erfüllt.

Wäre sehr nett. Es sollte eigentlich nur eine beliebige vorhandene physikalische Adresse anzeigen. Denke Ethernet-Adapter sollte ziemlich jeder Rechner haben.
Mit einem kleinen Text wie oben beschrieben, in einem separaten Tool. Kein Hintegrundbild, keine Buttons, ganz schlicht und einfach. Würst du mir sowas machen?
 
jasonhudgens schrieb:
Mit einem kleinen Text wie oben beschrieben, in einem separaten Tool. Kein Hintegrundbild, keine Buttons, ganz schlicht und einfach. Würst du mir sowas machen?
Klar, habe hier aktuell gerade nur Mono zur Hand und muss mir erst irgendein VS organisieren, dauert halt ein bisschen wenn das kein Problem ist.

jasonhudgens schrieb:
Denke Ethernet-Adapter sollte ziemlich jeder Rechner haben.
Manche sogar mehrere, und da wäre die Frage wie damit umgegangen wird. Willst Du die Adressen von allen haben oder nach bestimmten Kriterien (up/down, Name,..) filtern?
 
  • Gefällt mir
Reaktionen: jasonhudgens
Da muss ein Mail-Dienst installiert sein oder? Habe ich irgendwie schlechte Erfahrungen gemacht damit. Meistens haben die User ein Online-Mail und nicht fix installiert. Oder verstehe ich da etwas falsch?
Ergänzung ()

K7Fan schrieb:
Klar, habe hier aktuell gerade nur Mono zur Hand und muss mir erst irgendein VS organisieren, dauert halt ein bisschen wenn das kein Problem ist.


Manche sogar mehrere, und da wäre die Frage wie damit umgegangen wird. Willst Du die Adressen von allen haben oder nach bestimmten Kriterien (up/down, Name,..) filtern?
Welche physikalische Adresse spielt keine Rolle. Kann irgendeine beliebige sein, und falls mehrere (was ziemlich der Fall sein wird) trotzdem nur eine anzeigen. Die Lizenzierung folgt eben aufgrund dieser physikalische Adresse und zwei drei weitere Komponenten, für diese Angaben ist jedoch schon gesorgt.
Ergänzung ()

Ps. ein dickes Dankeschön! Kein stress, eilt nicht extrem.
 
Wusste ichs ja, es geistert hier noch wo eine alte VS CD herum ;)

Das Programm wird geöffnet, die MAC des ersten Ethernet oder 802.11 Adapters gelesen und in die Zwischenablage kopiert. Entspricht das Deinem Wunsch?
Irgendwie müssen wir das aber noch optisch ein wenig aufhübschen, das geht so ja garnicht. Zugegeben, ich bin sicher der mieseste GUI Designer den Du in dem gesamten Forum hier finden wirst ;)

P.S. Die letzten Stellen der MAC habe ich nur auf dem hochgeladenen und öffentlich ersichtlichem Bild entfernt.

P.P.S. Bedenke dass es auch USB Netzwerkadapter gibt die der Kunde jederzeit abstecken könnte, wenn so einer als erster Adapter erwischt wird könnte es vorkommen dass die zur Lizenzierung herangezogene MAC nicht mehr vorhanden ist.
 

Anhänge

  • mac.JPG
    mac.JPG
    26,8 KB · Aufrufe: 251
new Account() schrieb:
Ist doch defaultmäßig installiert ;)
Jein, installiert ist nicht gleich konfiguriert. Bei meiner nahezu frischen Win7 Installation funktioniert es nicht, siehe Bild, hängt vermtl. damit zusammen dass für Mail nie ein Standardprogramm festgelegt wurde.

Jemand der nur Webmailer verwendet wird eventuell nie einen Mailclient in Windows einrichten.
 

Anhänge

  • Mail.JPG
    Mail.JPG
    47,4 KB · Aufrufe: 239
  • Gefällt mir
Reaktionen: Valeria
K7Fan schrieb:
Jein, installiert ist nicht gleich konfiguriert.
Naja, die Login-Daten muss man online auch eingeben und bei der Mehrheit der Systemen ist das total simpel, weil es schon ein Standardprogramm gibt (für die großen Mailanbiete :) ).

Besser gehts wohl nur, wenn man die APIs der Emailprovider selbst integriert - dürfte nen haufen Aufwand sein ;)
 
jasonhudgens schrieb:
Welche physikalische Adresse spielt keine Rolle. Kann irgendeine beliebige sein, und falls mehrere (was ziemlich der Fall sein wird) trotzdem nur eine anzeigen. Die Lizenzierung folgt eben aufgrund dieser physikalische Adresse und zwei drei weitere Komponenten, für diese Angaben ist jedoch schon gesorgt.
Ganz sicher? Wird die Lizenz beim Programmstart in irgendeiner Form verifiziert? Sollte nämlich bei der Verifizierung ebenfalls die MAC ausgelesen werden, wäre es fatal, wenn die falsche verwendet werden würde und so die Lizenz plötzlich als ungültig definiert wird.

Je nachdem wie du die MAC am Ende also verwenden und ggfs prüfen willst, solltest du dir daher bewusst sein, dass die MACs je nach PC unterschiedlich ausgegeben werden können. Es kann eben auch sein, dass zB durch das Anstecken eines USB-(W)LAN-Adapters oder durch die Installation eines VPN-Adapters plötzlich eine andere MAC vom Programm ausgelesen wird als zum Zeitpunkt der Lizenzierung.
 
  • Gefällt mir
Reaktionen: SomeDifferent
new Account() schrieb:
Naja, die Login-Daten muss man online auch eingeben und bei der Mehrheit der Systemen ist das total simpel, weil es schon ein Standardprogramm gibt (für die großen Mailanbiete :) ).
Ganz so simpel ist das nicht :p.
Aktuelles Win7 nimmt über System.Diagnostics.Process.Start(string) immer IE, auch wenn FF installiert und als Standardbrowser festgelegt ist. IE versucht mailto: über das Standardmailprogramm abzuarbeiten und scheitert natürlich wenn keines installiert ist.

Die Lösung: Pfad des eigentlichen Standardbrowsers aus der registry holen und direkt aufrufen.
C#:
            var key = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey("HTTP\\shell\\open\\command", false);
            if (key == null)
            {
                lblMsg.Text = "Failed to open regkey";
                return;
            }

            //Quick and dirty path extraction
            path = key.GetValue(null).ToString().Split('"')[1];
            path = path.Substring(0, path.IndexOf(".exe")+4);

            
            try
            {
                System.Diagnostics.Process.Start(path,mt);
                return;
            }
            catch (Exception ex) 
            {
            .....
 
Zurück
Oben