» »

[C#] Spreminjanje IP naslova - DNS

[C#] Spreminjanje IP naslova - DNS

mirch ::

Zaradi potovanj, ter prihajanje nazaj na znane WIFI točke, sem si za lažje spreminjanje omislil program, kateri bi mi glede na vpisano lokacijo spremenil IP. Načeloma sem prišel tako daleč da program spremeni IP, Subnet in Gateway .. zapletlo se mi je pri DNS. Koda s kateri želim spremeniti DNS je naslednja:

public void setDNS(string NIC, string DNS)
        {
            ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection objMOC = objMC.GetInstances();

            foreach (ManagementObject objMO in objMOC)
            {
                if ((bool)objMO["IPEnabled"])
                {
                    // if you are using the System.Net.NetworkInformation.NetworkInterface you'll need to change this line to if (objMO["Caption"].ToString().Contains(NIC)) and pass in the Description property instead of the name 
                    if (objMO["Caption"].Equals(NIC))
                    {
                        try
                        {
                            ManagementBaseObject newDNS =
                                objMO.GetMethodParameters("SetDNSServerSearchOrder");
                            newDNS["DNSServerSearchOrder"] = DNS.Split(',');
                            ManagementBaseObject setDNS =
                                objMO.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }
                }


NIC = ime mrežne karte
DNS = IP naslov za DNS

Prosim za pomoč, kaj delam narobe? Namreč noče mi spremenit DNS naslova na določeni mrežni karti

FrEaKmAn ::

predvidevam da si za referenco vzel http://stackoverflow.com/questions/2097...? Si probal tudi druge rešitve?

mirch ::

Da, vzeto iz omenjene strani. Nisem lih programer, tako da sem si moral malo pomagati :) Sem poskusil tudi ostale rešitve, vendar brez uspeha. Res je da na mojem računalniku uporabljam windows 8.1. Če to kaj spremeni pa ne bi vedel? Dodam starejše .NET platforme (3.5, 2.0,...)?

Klemenn ::

sam bi probal z debugom in videl al dejansko ne spremeni al vrze kaksen error

potem pa se pomislil na elevated permissions. mogoce je samo to.

Jakka ::

Mogoče en namig. Nastaviš statično za dns 8.8.8.8 in 8.8.4.4 - Googlova dns strežnika. Pa dela povsod. :)

mirch ::

Jakka ... ni slaba ideja, ampak ko bi šlo le za enega uporabnika :)

Hvala tudi Klemenn, UAC sem probal direkt v Debug mapi kot administrator, vendar brez uspeha. Bom probal debuggat kolikor bom lahko in imam znanja :D


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Speech recognition

Oddelek: Programiranje
143449 (1506) simba89
»

[Java]Client/Server preko socketa

Oddelek: Programiranje
91794 (1630) KernelPanic
»

[Java] Urejanje baze z JTable

Oddelek: Programiranje
81020 (804) vonNeumann
»

VBS skripta za IP nastavitve

Oddelek: Programiranje
373456 (2970) Malajlo
»

[Visual C#] TableAdapter

Oddelek: Programiranje
61148 (1024) detroit

Več podobnih tem