Top-Themen

Aktuelle Themen (A bis Z)

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

Frage Entwicklung VB for Applications

VBScript, je nach IP Adresse etwas tun

Mitglied: netgearsdk

netgearsdk (Level 1) - Jetzt verbinden

15.03.2013, aktualisiert 17:05 Uhr, 4487 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 ..
Ähnliche Inhalte
Router & Routing
IP-Subnetze und IP-Adresse
gelöst Frage von lixus99Router & Routing2 Kommentare

Moin, ich habe das Netz aus dem Bild. Wenn man von C aus die kürzesten Wege zu den 5 ...

Monitoring
Alle IP Adressen
gelöst Frage von epspeterMonitoring13 Kommentare

Hallo zusammen, ich suche einfaches Programm welches mir alle IP Adressen im Netz anzeigt & druckt. Ich bedanke mich. ...

Windows Server
IP Adresse aus ausgeschlossenem Bereich
gelöst Frage von almeraWindows Server3 Kommentare

Hi, ich habe hier ein Class B Netz mit dem Bereich von 172.16.0.0 bis 172.16.254.254 auf einem 2008 R2. ...

Switche und Hubs
Openwrt IP Adresse ändern
Frage von Black-MacSwitche und Hubs9 Kommentare

Hallo leute ich weiss leider nee ob ich hier so richtig bin?! Und zwar habe ich aktuell mein cisco ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 6 StundenLinux1 Kommentar

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit23 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
gelöst Frage von Windows10GegnerNetzwerkgrundlagen22 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...