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, 5632 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Datenbanken
gelöst IF Abfrage im SELECT Oracle SQL (2)

Frage von Roadrunner777 zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...