IP-Adressen aktualisieren

Anfängerfragen zum Programmieren mit PureBasic.
funk.munich
Beiträge: 123
Registriert: 27.03.2006 09:45

Beitrag von funk.munich »

Hi,

das hier ist natürlich keine PB Lösung, jedoch mit dem Skript könntest
Du auch die IP über RunProgramm anpassen können.
Temporär folgende vbs Datei erstellen (natürlich noch anpassen):

Code: Alles auswählen

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

strIPAddress = Array("192.168.1.141")
strSubnetMask = Array("255.255.255.0")
strGateway = Array("192.168.1.100")
strGatewayMetric = Array(1)
 
For Each objNetAdapter in colNetAdapters
    errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
    errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
    If errEnable = 0 Then
        WScript.Echo "The IP address has been changed."
    Else
        WScript.Echo "The IP address could not be changed."
    End If
Next
Läuft unter W98 -> W2K3.

Vielleicht hilfts, wenn nicht einfach ignorieren.

Gruß,
Daniel
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

@funk.munich

danke, ich werde es mal ausprobieren.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

Mit Netsh könntest dus machen ( std windows commandline ):

Code: Alles auswählen

; Shows Settings:
netsh interface ip show config

Code: Alles auswählen

; Set ip to 192.168.0.30
; Set netmask to 255.255.255.0
; Set gateway to 192.168.0.1
; Last Flag activates the Interface with new settings
netsh interface ip set address name="Local Area Connection" static 192.168.0.30 255.255.255.0 192.168.0.1 1

Code: Alles auswählen

; Export Interface Settings to a file
netsh -c interface dump > c:\myinterface1.txt

Code: Alles auswählen

; Import Settings from exported file
; Ideal to fastly switch between conbfigurations.
netsh -f c:\myinterface1.txt 

Code: Alles auswählen

; Set Interface to DHCP
netsh interface ip set address "Local Area Connection" dhcp

Code: Alles auswählen

; Set WINS & DNS Server
netsh interface ip set wins "Local Area Connection" static 192.168.0.200
netsh interface ip set dns "Local Area Connection" static 192.168.0.200

Code: Alles auswählen

; Set DNS /WINS to dhcp
netsh interface ip set dns "Local Area Connection" dhcp
EDIT: Hab Deinen Post nur überflogen... :oops: aber denke ich ist trotzdem hilfreich das hier mal festzuhalten - für alle die mit der Suchfunktion umgehen können jedenfalls ... <)

Alternativ kannst du auch WinAPI verwenden.

Hoffe das war hilfreich, Thalius
Zuletzt geändert von Thalius am 22.03.2007 21:50, insgesamt 1-mal geändert.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

@Thalius

Danke, aber wie du aus meinem ersten Posting herauslesen kannst, möchte ich netsh möglichst umgehen. Was gibt es für API-Möglichkeiten und wie funktionieren diese? (Bitte entschuldigt diese Frage, aber ich habe Vista und da funzen .hlp-Hilfedateien nicht mehr. Muss die win32.hlp irgendwann mal in .chm konvertieren)
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

PureBasic4.0 hat geschrieben:(Bitte entschuldigt diese Frage, aber ich habe Vista und da funzen .hlp-Hilfedateien nicht mehr. Muss die win32.hlp irgendwann mal in .chm konvertieren)
http://www.pcwelt.de/news/software/vist ... index.html

Ansonsten könnteste den Code von funk.munich mit dem ScriptControl nutzen
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

@ts-soft:
Danke! HLPs funktionieren jetzt wieder
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

funk.munich hat geschrieben:Hi,

das hier ist natürlich keine PB Lösung, jedoch mit dem Skript könntest
Du auch die IP über RunProgramm anpassen können.
Temporär folgende vbs Datei erstellen (natürlich noch anpassen):

Code: Alles auswählen

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

strIPAddress = Array("192.168.1.141")
strSubnetMask = Array("255.255.255.0")
strGateway = Array("192.168.1.100")
strGatewayMetric = Array(1)
 
For Each objNetAdapter in colNetAdapters
    errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
    errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
    If errEnable = 0 Then
        WScript.Echo "The IP address has been changed."
    Else
        WScript.Echo "The IP address could not be changed."
    End If
Next
Läuft unter W98 -> W2K3.

Vielleicht hilfts, wenn nicht einfach ignorieren.

Gruß,
Daniel
Kann man damit auch DHCP Adressen übernehmen? Und wie kann man damit ein Netzwerkgerät auswählen (ich möchte nur eines verändern)
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Nanu? Habt ihr alle keine Ahnung von dem Script?
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Wie heisst denn das Netzwerkgerät? Heisst es überall gleich? Hat es unterschiedliche Namen? Sind die eventuell vom User selber benennbar?


mM zum Script : Wer den scriptinghost an lässt ist selber Schuld.
Für mich wäre das per se keine Lösung.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

@bobobo: Geh mal auf Start --> Systemsteuerung --> Netzwerkverbindungen. Da drin stehen alle Netzwerkgeräte, die am Computer angeschlossen (bzw. eingebaut) sind
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Antworten