Gå til innhold

C#: skifte mac-addresse og restarte nettverkskort i c#


Anbefalte innlegg

hei,

 

jeg kan i litt c# og litt java og litt bash programmering og dette spörsmålet gjelder en datamaskinen som kjörer Windows Vista.

 

Problem:

min bredbåndsleverandör (eller så er det min trådlöse router ?) låser seg med jevne mellomrom og jeg har funnet ut at den smidigste lösningen på dette er å bare å forandre mac addressen på mitt trådlöse nettverkskort. Så blir alt som vanlig igjen.

 

Derfor tenkte jeg å lage enten en bat-fil, eller et lite c# eller javaprogram som smidig utförer denne oppgaven.

 

Jeg bruker vanligvis macmaceup153 til å forandre min macaddresse men da må jeg etterpå gå inn i enhetshåntereren og deaktivere -- aktivere kortet igjen.

 

Det hadde värt smidig å ha et lite script/program som gjör alt dette ved et tastetrykk:

 

1. Forandre mac til en random addresse

2. deaktivere nettverkskort

3. aktivere nettverkskort

 

Kan jeg gjöre dette for eksempel i c#. Eller kanskje enda greiere i en liten bat fil...?

 

Jeg skulle kunne gjort dette enkelt i linux, men vet ikke helt hvilke muligheter som finnes i Windows.

 

mvh knut

Lenke til kommentar
Videoannonse
Annonse

Dette høres ut som du kan løse dette med bruk av WMI. Hvis du skal lage et C# program som gjør dette, må du huske å legge til referanse til System.Management.

 

Ligger masse eksempler på hvordan du bruker WMI på nettet, søk på google etter feks "wmi mac c#"

 

Post gjerne løsningen, om du finner den :)

Endret av xtc
Lenke til kommentar

Takk,

 

Det er interessant å lese om WMI...

 

Enn så lenge har jeg bare funnet hvordan jeg kan hente informasjon og for eksempel for å hente mac addressen blir det slik:

 

 

using System;
using System.Text;
using System.Runtime.InteropServices;
using System.Management;

namespace MachineInfo
{
   public class GetInfo
   {
       /// <summary>
       /// Returns MAC Address from first Network Card in Computer
       /// </summary>
       /// <returns>[string] MAC Address</returns>
       public string GetMACAddress()
           {
           ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
           ManagementObjectCollection moc = mc.GetInstances();
           string MACAddress=String.Empty;
           foreach(ManagementObject mo in moc)
           {
               if(MACAddress==String.Empty)  // only return MAC Address from first card
               {
                   if((bool)mo["IPEnabled"] == true) MACAddress= mo["MacAddress"].ToString();
               }
                       mo.Dispose();
           }
           MACAddress=MACAddress.Replace(":","");
           return MACAddress;
           }
}
}

 

Ellers leser jeg om wmi at mac bare er "read" og jeg er litt usikker på om jeg kan bruke wmi til å forandre den.

 

http://msdn2.microsoft.com/en-us/library/aa394217.aspx

 

Skal lese mer...

 

Jeg har også funnet en annen lösning som går på å forandre mac-addressen, slik den lagres av windows i registeret. Dette forklares her:

 

http://www.nthelp.com/NT6/change_mac_w2k.htm

 

Skal undersöke litt mer... :hmm:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...