Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBScript, je nach IP Adresse etwas tun

Frage Entwicklung VB for Applications

Mitglied: netgearsdk

netgearsdk (Level 1) - Jetzt verbinden

15.03.2013, aktualisiert 17:05 Uhr, 4164 Aufrufe, 10 Kommentare

Hallo zusammen,

wie ist es möglich mit vbscript zuerst einmal die eigene IP adresse abzufragen und anschliessend je nach IP-Range das tun was dort definiert ist. Welche befehle muss ich kennen?

sollte ungefähr so aussehen:

IP 192.168.25.
IP 192.168.50.
IP 192.168.75.
IP 192.168.100.


Wenn meine IP Adresse 192.168.25.7 ist sollte er
->das
->und das
->und das
machen

Wenn meine IP Adresse 192.168.50.92 ist sollte er
->das
->und das
->und das
machen

Wenn meine IP Adresse 192.168.75.33 ist sollte er
->das
->und das
->und das
machen

Vielen Dank bereits im Voraus!
Mitglied: SarekHL
15.03.2013, aktualisiert um 21:01 Uhr
Schau Dir das mal an: http://www.activexperts.com/admin/scripts/wmi/vbscript/0340/
Die IP-Adresse findest Du dann in objItem.IPAddress, und die kannst Du dann ja in einer If-Then-Konstruktion verwenden ...
Bitte warten ..
Mitglied: rubberman
15.03.2013, aktualisiert um 22:55 Uhr
Hallo Zusammen.

Der Link von Sarek scheint schon etwas älter zu sein. Mittlerweile bekommst du so ein Array mit IPv4 und IPv6 Adresse.
Teste mal, ob das für dich funktioniert:
01.
Option Explicit 
02.
Dim colItems, oItem, aIP 
03.
 
04.
Set colItems = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2").ExecQuery( _ 
05.
  "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE NOT MACAddress = '' AND IPEnabled = TRUE", "WQL", 48) 
06.
 
07.
For Each oItem In colItems 
08.
  If IsArray(oItem.IPAddress) Then 
09.
    aIP = Split(oItem.IPAddress(0), ".") 
10.
  Else 
11.
    aIP = Split(oItem.IPAddress, ".") 
12.
  End If 
13.
Next 
14.
 
15.
If IsArray(aIP) Then 
16.
  Select Case aIP(0) & "." & aIP(1) & "." & aIP(2) 
17.
 
18.
    Case "192.168.25" 
19.
      WScript.Echo "1" 
20.
 
21.
    Case "192.168.50" 
22.
      WScript.Echo "2" 
23.
 
24.
  End Select 
25.
End If
Die WScript.Echo Zeilen ersetzt du entsprechend durch deinen Code und ergänzt die fehlenden Case Anweisungen.

Grüße
rubberman
Bitte warten ..
Mitglied: netgearsdk
17.03.2013, aktualisiert um 15:24 Uhr
Hallo @rubberman

Vielen Dank für deine Antwort.

Es scheint jedoch so, dass er die Falsche IP Adresse nimmt:

Drahtlos-LAN-Adapter Drahtlosnetzwerkverbindung:

Verbindungsspezifisches DNS-Suffix: -
Verbindungslokale IPv6-Adresse . : -
IPv4-Adresse . . . . . . . . . . : 192.168.1.106
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.1.1

Ethernet-Adapter LAN-Verbindung* 2:

Medienstatus. . . . . . . . . . . : Medium getrennt
Verbindungsspezifisches DNS-Suffix:



Ethernet-Adapter VirtualBox Host-Only Network:

Verbindungsspezifisches DNS-Suffix:
Verbindungslokale IPv6-Adresse . : -
IPv4-Adresse . . . . . . . . . . : 192.168.56.1
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . :


Er nimmt die 192.168.56 IP Adresse aus der VirtualBox Network IP.
Wie kann ich das verhindern?
Ist es z.B. Möglich die IP Adresse vom Drahtlos-LAN-Adapter zu beziehen?
Bitte warten ..
Mitglied: rubberman
18.03.2013 um 00:10 Uhr
Hallo netgearsdk,

an was willst du das fest machen? Am Name (oder einem Teil davon), am vorhandenen Standardgateway oder an der ersten gefundenen IP Adresse? Alles möglich, aber definieren musst du das vorher. Mit der Umsetzung kann ich behilflich sein.

Grüße
rubberman
Bitte warten ..
Mitglied: netgearsdk
18.03.2013 um 22:40 Uhr
Hallo @rubberman

Ich möchte anhand der IP Adresse Entscheide treffen.
Anhand der IP Adresse finde ich heraus an welchem Subnetz der jeweiliger Rechner ist. So bringt es mir den Vorteil, die Rechner am naheliegesten Server zu lenken um damit schnellere Datentransfers zu erledigen.
Das Problem ist jedoch, wenn der Rechner einen Ethernet-Adapter VirtualBox installiert hat, wie meiner, dann nimmt der Script automatisch diese IP Adresse. Dies möchte ich natürlich verhindern.
Er sollte natürlich vom die IP Adresse der LAN-Verbindung einlesen und keine andere.
Ich hoffe Du siehst meine Problematik und kannst mir weiterhelfen.

Danke Dir ganz herzlich bereits im Voraus
LG
Bitte warten ..
Mitglied: rubberman
19.03.2013 um 00:02 Uhr
Hallo netgearsdk,

ich hatte dich schon verstanden. Meine Frage an dich war, welche Eigenschaft / welcher Wert infrage kommt, um die richtige IP Adresse zu selektieren. Ein paar Möglichkeiten hatte ich dir schon genannt.

Gehen wir mal davon aus, dass der Name immer die Zeichenfolge "LAN" enthält, dann könntest du die Zeile 5 in meinem Code durch folgende ersetzen:
  "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE NOT MACAddress = '' AND IPEnabled = TRUE AND Description LIKE '%LAN%'", "WQL", 48)
Ob das allerdings ausreicht, um sicher von anderen Netzwerkadaptern abzugrenzen und ob der gesuchte Netzwerkadapter immer die Zeichenfolge "LAN" enthält, kannst nur du wissen. Darum war meine Bitte, das Unterscheidungskriterium vorab zu definieren.

Grüße
rubberman
Bitte warten ..
Mitglied: netgearsdk
19.03.2013, aktualisiert um 14:28 Uhr
Hallo @rubberman

Ich suche die IP Adresse von der LAN Adapter. Doch irgendwie kann ich aufeinmal keine IP Adresse mehr auslesen, wenn ich -> Description LIKE '%LAN%' noch hinzufüge.
Doch ich habe eine Idee. Und zwar bei der abfrage

01.
  For Each oItem In colItems 
02.
  If IsArray(oItem.IPAddress) Then 
03.
	aIP = Split(oItem.IPAddress(0), ".") 
04.
  Else 
05.
    aIP = Split(oItem.IPAddress, ".") 
06.
  End If 
07.
  Next
In dieser For Each Schleife wird die Variable aIP zuerst mit der IP Adressen 192.168.1.106(IP von LAN Netzwerkadapter) befüllt und daraufhin wird die aIP Variable überschrieben. Und zwar mit der IP Addresse 192.168.56.1(IP von Virtualbox Netzwerkadapter).
Ist es möglich die Werte, welche in diese For Each schleife fallen als ein Array zu speichern und ausserhalb dieser For Each Schleife im Code wieder zu verwende?
Also er sollte einfach in diese For Each Schleife fallenden Werte als ArrayXYZ speichern und dann für jedes Elemente im ArrayXYZ einmal diesen Coden unten ausführen.


01.
If IsArray(aIP) Then 
02.
  Select Case aIP(0) & "." & aIP(1) & "." & aIP(2) 
03.
 
04.
   
05.
    Case "192.168.25" 
06.
    'blablabl       
07.
 
08.
    Case "192.168.50" 
09.
    'blablabl 
10.
 
11.
  'End Select 
12.
End If
Vielen Dank bereits im Voraus
LG
Bitte warten ..
Mitglied: rubberman
19.03.2013 um 19:21 Uhr
Hallo netgearsdk.

Doch irgendwie kann ich aufeinmal keine IP Adresse mehr auslesen, wenn ich -> Description LIKE '%LAN%' noch hinzufüge.
OK, "Description" ist nicht "Name" und auch nicht "Caption". Diese Eigenschaften existieren aber leider nicht in der Win32_NetworkAdapterConfiguration Klasse. Von daher ist es durchaus möglich, dass der Teilstring "LAN" gar nicht vorkommt. Das hättest du dir aber mal anzeigen lassen und entsprechend ändern können.

Ist es möglich die Werte, welche in diese For Each schleife fallen als ein Array zu speichern und ausserhalb dieser For Each Schleife im Code wieder zu verwende?
Klar ist das möglich. Aber warum ein zusätzliches Array? Packe den Code doch einfach direkt mit in die Schleife.

01.
Option Explicit 
02.
Dim colItems, oItem, aIP 
03.
 
04.
Set colItems = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2").ExecQuery( _ 
05.
  "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE NOT MACAddress = '' AND IPEnabled = TRUE", "WQL", 48) 
06.
 
07.
For Each oItem In colItems 
08.
  If IsArray(oItem.IPAddress) Then 
09.
    aIP = Split(oItem.IPAddress(0), ".") 
10.
  Else 
11.
    aIP = Split(oItem.IPAddress, ".") 
12.
  End If 
13.
 
14.
  If IsArray(aIP) Then 
15.
    Select Case aIP(0) & "." & aIP(1) & "." & aIP(2) 
16.
 
17.
      Case "192.168.25" 
18.
        WScript.Echo "1" 
19.
 
20.
      Case "192.168.50" 
21.
        WScript.Echo "2" 
22.
 
23.
    End Select 
24.
  End If 
25.
Next
Grüße
ruberman
Bitte warten ..
Mitglied: netgearsdk
22.03.2013 um 14:38 Uhr
Hallo @rubberman

Vielen Dank für deine Antwort!

Ja, das habe ich mir auch überlegt, jedoch war ich mir unsicher dies zu tun, weil schlussendlich der Case diverse IF Befehle und For Each Schleifen beinhaltet wird.
Doch ich werde es so umsetzen, wie du es gesagt hast.

Noch kurz eine Frage zu deiner 'Informationsbeschaffungstechnik'.
Wie zeigst du dir die Informationen der Klasse Win32_NetworkAdapterConfiguration an? Ich kann dir sagen wie ich vorgehe; ich gebe die Klasse im Google z.B. Win32_NetworkAdapterConfiguration Klasse ein und versuche da bei der erstmöglichen Link die Eigenschaften oder Methoden zu finden.
Jedoch ist es bisschen umständlich das zu finden was man sucht. Denn man stösst unter anderem auf Links wie diese: http://www.scriptinternals.de/new/ger/support/Internal/WMI_Win32_Networ ...
Eventuell hast du eine andere / angenehmere Technik, die du mir verraten kannst.



Danke für deine Hilfe!
Bitte warten ..
Mitglied: rubberman
22.03.2013 um 19:39 Uhr
Hallo netgearsdk.

Für das Anzeigen der Informationen ist der Link von Sarek recht gut geeignet. Du kannst dort bereits mit WHERE einschränken und musst berücksichtigen, dass du statt auf Eigenschaft .IPAddress auf .IPAddress(0) verweisen musst. Du kannst das Script auch entsprechend einkürzen und nur das anzeigen lassen, was dich interessiert. Ansonsten hilft ein
On Error Resume Next
am Anfang des Scripts um Fehlermeldungen zu unterdrücken und es weiter laufen zu lassen.

Wo ich meine Informationen beziehe? Ich mache das nicht wesentlich anders als du. Wenn ich gezielt die Doku benötige, dann nehme ich gerne die Hilfe des Urhebers in Anspruch, indem ich bei der Suche ein "msdn" voran stelle. Das führt dich dann direkt zu dieser Seite

Grüße
rubberman
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
LAN, WAN, Wireless
gelöst TP-Link WA501G als Client einrichten - Keine IP Adresse wir bezogen (14)

Frage von bestelitt zum Thema LAN, WAN, Wireless ...

E-Mail
gelöst Falsche SMTP Server IP Adresse (6)

Frage von laster zum Thema E-Mail ...

Batch & Shell
Hostname bzw IP-Adresse in Excel eintragen (12)

Frage von EgonFrenz zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...