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

gelöst PHP Effektiver Stringvergleich snmp

Mitglied: megacarsIT

megacarsIT (Level 1) - Jetzt verbinden

04.09.2008, aktualisiert 05.09.2008, 4037 Aufrufe, 4 Kommentare

Hallo Leute!

Es geht um folgendes:

Ich bekomme per snmpget über PHP, von einem Switch folgenden Zeichenfolge zurück:
" STRING: Herstellername (Typname) ",
im Falle des Herstellers HP/ProCurve sieht er so aus:

STRING: ProCurve J4900B Switch 2626, revision H.10.50, ROM H.08.05 (/sw/code/build/fish(mkfs))

Diese würde ich gern am Herstellernamen unterscheiden, da es drei Switch-Hersteller gibt ...

Dies dient dann dazu den richtigen SNMP-Einstiegspunkt zu setzen,
um danach über snmpwalk zu nutzen, um Infos abzufragen.

Habe den Stringvergleich u.a. mit strpos, strscpn versucht?

Gibt es da etwas effektiveres??
Mir würde reichen zu sagen:
STRING:
und danach die ersten beiden Buchstaben vergleichen, dies mit einem Wahrheitswert zurück zu geben.


Das Script ist zwar lauffähig, aber es trifft keine eindeutige Unterscheidung.


Anbei der Codeschnipsel:
01.
        //Abfrage des Herstellers 
02.
    $devicename = snmpget($host, $communitystring, "sysName.0");             
03.
     
04.
    $hersteller1 = "Cisco"; 
05.
    $hersteller2 = "Procurve"; 
06.
    $hersteller3 = "3com"; 
07.
             
08.
                if(strpos($devicename, $hersteller2 === TRUE)) 
09.
10.
                    $snmp_adress = "enterprises.11.2.14.11.5.1.9.4.2.1"; 
11.
12.
                elseif(strpos($devicename, $hersteller1 === TRUE)) 
13.
14.
                    $snmp_adress = "Beispiel1.11.2.14.11.5.1.9.4.2.1"; 
15.
16.
                else 
17.
18.
                    $snmp_adress = "beispiel2.11.2.14.11.5.1.9.4.2.1"; 
19.
                 
20.
21.
                         
22.
            //Host, Communitystring und  SNMP_Einstiegspunkt (Adress) 
23.
            $host = $argv[1]; 
24.
            $communitystring = $argv[2]; 
25.
            //$snmp_adress = 'enterprises.11.2.14.11.5.1.9.4.2.1'; 
26.
 
27.
             
28.
            $datenarray = snmpwalk("$host","$communitystring","$snmp_adress"); 
29.
            $arraycount = count($datenarray);

Besten Dank!
Mitglied: Arano
04.09.2008 um 11:28 Uhr
Moin,

schau dir mal den Rückgabewert der funktion "strpos()" an: PHP-Manual - strpos()
Deine Bedingungen werden nur erfüllt wenn "strpos()" TRUE zurückgibt, was aber nie der Fall sein wird ;)

~Arano
Bitte warten ..
Mitglied: megacarsIT
04.09.2008 um 11:35 Uhr
Besten Dank für Dein Link!
Achsoo also kann es garkein Zustand in TRUE annehmen? Oder wie muss ich das verstehen?

Habs nun mit strspn versucht.... bin total verwirrt
Bitte warten ..
Mitglied: Arano
04.09.2008 um 12:36 Uhr
Ja, das ist richtig !
strpos ist gar nicht falsch gewesen. strpos liefert dir im Erfolgsfall die Position der Stelle an der die Zeichenkette gefunden wurde zurück, oder FALSE wenn sie nicht gefunden wurde. Um die Prüfung damit nun durchzuführen, kannst du folgendes verwenden:
01.
<?php 
02.
  if(strpos($devicename, $hersteller1)!==FALSE) 
03.
     $snmp_adress = 'enterprises.11.2.14.11.5.1.9.4.2.1'
04.
  elseif(strpos($devicename, $hersteller1)!==FALSE) 
05.
     $snmp_adress = 'Beispiel1.11.2.14.11.5.1.9.4.2.1';  
06.
  else 
07.
     $snmp_adress = 'beispiel2.11.2.14.11.5.1.9.4.2.1'
08.
?>
Zusätzlich könntest du noch prüfen lassen ob die Position an der die Zeichenkette gefunden wurde korrekt ist - für den Fall das die gesuchten Zeichenketten auch in den anderen Devicenamen an einen späteren Stelle vorkommen dann sähe es ungefähr so aus:
01.
<?php 
02.
  // rueckgabe von strpos in $pos speichern, 
03.
  // pruefen ob es NICHT gleich FALSE ist und 
04.
  // noch mal pruefen ob die Stelle an der sie gefunden wurde die richtige ist 
05.
  if(($pos=strpos($devicename, $hersteller1))!==FALSE && $pos==8) 
06.
     $snmp_adress = 'enterprises.11.2.14.11.5.1.9.4.2.1'
07.
  elseif(($pos=strpos($devicename, $hersteller1))!==FALSE && $pos==8) 
08.
     $snmp_adress = 'Beispiel1.11.2.14.11.5.1.9.4.2.1';  
09.
  else 
10.
     $snmp_adress = 'beispiel2.11.2.14.11.5.1.9.4.2.1'
11.
?>
Mir ist eben noch aufgefallen das du auch einen Fehler in deinen Bedingungen hattest:
01.
<?php 
02.
  // du hattest: 
03.
  if(strpos($devicename, $hersteller2 === TRUE)) 
04.
  // sollte aber so sein: 
05.
  if(strpos($devicename, $hersteller2) === TRUE) 
06.
?>
Das hätte eigentlich eine Fehlermeldung werfen sollen !?

Gruß Arano
Bitte warten ..
Mitglied: megacarsIT
05.09.2008 um 10:56 Uhr
Hallo Arano!

Besten Dank für Deine Hilfe! Beitrag ist auf gelöst!
Code 2 hatte bei mir keine Fehlermeldung geworfen.
Vielleicht liegt das an SHELL-PHP ?
Wobei ich keine Error@unterdrückung on hab.

Möchte diesen Beitrag nicht zu spammen, ich hab da noch Fragen zu einem andere Thema ;)


Gruss,
megacarsIT
Bitte warten ..
Ähnliche Inhalte
Netzwerkprotokolle
SNMP Verbindungsproblem
Frage von mames92Netzwerkprotokolle2 Kommentare

Hallo zusammen, ich versuche Informationen von einiegen Servern über SNMP zu bekommen. Mein Testserver ist ein Windows 2008 auf ...

Monitoring
SNMP Problem
gelöst Frage von msalcherMonitoring1 Kommentar

Hey Leute :) Ich würde gerne meinen PC (Win8) über SNMP monitoren. Hab den Service konfiguriert. So wenn ich ...

Windows 10

Wie effektiv Windows 10 Upgrade blockieren?

gelöst Frage von dng-altWindows 1015 Kommentare

Hallo zusammen, ich bin ja persönlich sehr gespannt auf das Windows 10-Upgrade. Jetzt habe ich hier aber einige Firmen-Notebooks ...

Netzwerkmanagement

SNMP - Wie vorführen?

Frage von animatedNetzwerkmanagement6 Kommentare

Hallo Zusammen! Das ist mein erster post in diesem Forum, daher schnell ein bisschen zu meiner Person/Situation: Ich bin ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 12 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 18 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...