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
GELÖST

If-Abfrage in VBS

Frage Microsoft

Mitglied: KopfLeer

KopfLeer (Level 1) - Jetzt verbinden

25.04.2007, aktualisiert 26.04.2007, 5657 Aufrufe, 7 Kommentare

...

Hallo,

ich habe folgende Abfrage probiert (die Variable single_ip beinhaltet die IP-Adresse, z.B. 172.31.137.110) :

if single_ip = "172.31.137.116" then
Wscript.echo("172er Netz")
else
Wscript.echo("192er Netz")
end if

Das funktioniert soweit. Ich möchte nun aber nicht gezielt auf EINE IP-Adresse vergleichen, sondern auf einen gesamten Bereich, z.B. 172.31.137.* .

Wie gestalte ich die Abfrage. Bitte um Hilfe eines Wissenden. Vielen Dank.

Tom

//EDIT

Konnte das Problem selbst lösen.

Dim strText As String

strText = "Auto, Motorrad, Fahrrad"

Dim strTeil As String
Wenn man das Wort "Auto" heraustrennen will, nimmt man am besten die "Left" Funktion. Diese Funktion nimmt 2 Argumente entgegen. Den Mustertext und die Anzahl der Zeichen, die herauskopiert werden sollen.

strTeil = Left(strText, 4)

Tom
Mitglied: stiehl
25.04.2007 um 21:26 Uhr
und was machst du, wenn du die IP 172.31.137.1 hast? dann liefert dein befehl "172.31.1" zurück. du musst schon nach dem letzten in dem string vorkommenden punkt suchen und danach alles abschneiden. wie die funktion dazu heisst, weiss ich im moment allerdings auch nicht. oder du baust dir direkt nen regulären ausdruck
Bitte warten ..
Mitglied: KopfLeer
25.04.2007 um 22:32 Uhr
Hallo, ich verstehe nicht ganz wo Du das Problem siehtst. Wenn ich die Funktion strTeil = Left(strText,10) nutze, bleibt mir von dem ursprünglichen Wert (z.B. 172.31.137.100) genau 172.31.137 über. Diesen Wert vergleiche ich dann wieder per IF-Abfrage mit der ursprünglich ermittelten IP-Adresse - wenn das Ergebnis True ist, dann ist der Rechner aus diesem Netz, und zwar egal ob die IP-Adresse 172.31.137.1 oder 172.31.137.100 oder sonst was aus diesem Netzt ist - und das ist genau das was ich wissen will - ob der Rechner aus diesem Netz (maskiert mit 255..255.255.0) ist.

Ich verstehe nicht wie Du darauf kommst das mein Befehl 172.31.1 zurück liefert ???

Tom
Bitte warten ..
Mitglied: stiehl
25.04.2007 um 22:52 Uhr
ups, hatte irgendwie right() gelesen...

naja, für den Anwendungsfall ist es dann OK. Eleganter wäre es halt nur, nach nem Punkt zu trennen und nicht nach ner definierten Anzahl an Zeichen. Damit könntest du dann auch verschieden lange IP-Adressen untersuchen
Bitte warten ..
Mitglied: Biber
25.04.2007 um 22:54 Uhr
Moin Kopfleer,

was stiehl richtigerweise meint ist, dass Dein Algorithmus wackelig ist, weil er fest verdrahtet 10 Zeichen vor dem letzten Token unterstellt.

Dabei kann theoretisch aus mal statt einer IP 172.31.137.xxx aich eine IP 10.10.1.xxx dabeisein.

Oder, um Dein Beispiel von oben noch mal zu bemühen:
01.
'lastcommaDemo.vbs 
02.
strText1 = "Auto, Motorrad, Fahrrad" 
03.
wscript.echo "strText1: " & strText1 
04.
wscript.echo "Left(strText1,4): " & Left(strText1,4) 
05.
strText2 = "Motorrad, Fahrrad, Auto" 
06.
wscript.echo "strText2: " & strText2 
07.
wscript.echo "Left(strText2,4): " & Left(strText2,4) 
08.
 
09.
lastcommapos=InstrRev(strtext1, ",") 
10.
wscript.echo "letztes Token Strtext1: " & Mid(StrText1,lastcommapos+1) 
11.
lastcommapos=InstrRev(strtext2, ",") 
12.
 
13.
wscript.echo "letztes Token Strtext2: " & Mid(StrText2,lastcommapos+1)
01.
>cscript //nologo e:\lastCommaDemo.vbs 
02.
strText1: Auto, Motorrad, Fahrrad 
03.
Left(strText1,4): Auto 
04.
strText2: Motorrad, Fahrrad, Auto 
05.
Left(strText2,4): Moto 
06.
letztes Token Strtext1:  Fahrrad 
07.
letztes Token Strtext2:  Auto
--->wenn Du erst die Position des letzten Kommas in "Auto, Motorrad, Fahrrad" oder die Position des letzten Punkts in einer IP ermitteltst, dann wird es flexibler und allgemeiner verwendbar.

Gruss
Biber
Bitte warten ..
Mitglied: KopfLeer
25.04.2007 um 22:57 Uhr
Hi, ist mir später auch eingefallen das Du vielleicht von rechts gezählt haben könntest. Mit dem Punkt zu trennen (also nach dem dritten Octett) wäre natürlich noch eleganter. Aber in meinem Fall ist das so ausreichend. Tom
Bitte warten ..
Mitglied: KopfLeer
25.04.2007 um 23:43 Uhr
Hi Biber,
vielen Dank - einen großen Baumstamm für Dich . Die einfache Variante die ich oben geschrieben habe, habe ich zwar jetzt bereits in meinem Script verbaut, aber ich werde Deinem Vorschlag folgen und dementsprechend mein Script ändern - einfach nur weil es Spaß macht das "ordentlich" zu machen.

Aber es ist in meinem Fall eigentlich wirklich nicht nötig, da ich nur die Rechner mit dem Script erwischen will die 172.31.137.xxx als IP haben - alle anderen Rechner mit anderen IP's aus anderen Netzen interessieren mich nicht. Und die erreiche ich auch mit meiner Lösung sicher.

Ich habe es nun so gemacht gehabt :
single_ip = 172.31.137.14 (wird natürlich im Script ermittelt)
single_net = Left(single_ip,10)
if single_net = "172.31.137" then
Wscript.echo("Für Rechner die hierzu passen wird hier was gemacht")
else
single_net = Left(single_ip,7)
if single_net = "192.168" then
Wscript.echo("Rechner aus dem 192er Netz, die aber nicht interessieren.")
end if
end if

Viele Grüße

Tom
Bitte warten ..
Mitglied: Biber
26.04.2007 um 08:15 Uhr
Moin Kopfleer,
einfach nur weil es Spaß macht das "ordentlich" zu machen.

FULL ACK. Du hast den Sinn und Zweck dieses Forums verstanden.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell IF Abfrage Vergleichsoperatoren (4)

Frage von Peterz zum Thema Batch & Shell ...

C und C++
gelöst IF Abfrage funktioniert nicht mehr (2)

Frage von pablovic zum Thema C und C ...

Linux Tools
gelöst Linux Script mit dreifacher If Abfrage verschachteln (9)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Linux Tools ...

Batch & Shell
gelöst Powershell if -eq - or (7)

Frage von Johnny-CGN zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (22)

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

Webentwicklung
Aktuellen Mitarbeiter auf Homepage anzeigen (13)

Frage von alemanne21 zum Thema Webentwicklung ...

Festplatten, SSD, Raid
Raid-Controller (Areca) Datenverlust trotz R5 (11)

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

Windows Server
gelöst Parameter Übergabe Terminal Server (9)

Frage von ThomasKern zum Thema Windows Server ...