[PHP] nbtstat liefert kein Ergebnis

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Root-2k, 15. April 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 15. April 2010
    nbtstat liefert kein Ergebnis

    Hi,

    ich habe ein seltsames Problem mit folgendem Code:

    PHP:
    $output  shell_exec ( "nbtstat -a XXX.XXX.XXX.XXX" );
    echo 
    "Groesse: " . sizeof ( $output );
    Hier bekomme ich als Ergebnis immer 0!
    Also es wird auch kein Ergebnis von nbtstat geliefert.
    Wenn ich das Ganze mit "arp -a XXX.XXX.XXX.XXX" mache bekomme ich etwas zurück. Auch bei "ipconfig /all". Nur "nbtstat" funktioniert nicht (von den Befehlen die ich kenne). Auch nicht wenn ich den kompletten Pfad zur nbtstat.exe angebe (also c:\windows\system32\nbtstat.exe -a XXX.XXX.XXX.XXX).

    Wenn ich "nbtstat -a XXX.XXX.XXX.XXX" aber in die Kommandozeile eingebe bekomme ich auch das gewünschte Ergebnis!

    System: Windows XP Service Pack 2

    Könnt Ihr mir vielleicht weiterhelfen? Ist wirklich wichtig!!!
    Bw ist da selbstverständlich!!
     
  2. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    sizeof is da auch falsch, da shell_exec nen string zurück gibt.
     
  3. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    Das funktioniert aber normalerweise schon. Wenn ich "arp -a ..." verwende wird mir auch "1" ausgegeben.

    Auch bei diesem Code wird mir nichts außer "Ausgabe: " ausgegeben!
    PHP:
    $output  shell_exec ( "nbtstat -a XXX.XXX.XXX.XXX" );
    echo 
    "Ausgabe: " . $output ;
     
  4. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    Nur als Gedankenansatz: Vielleicht gibt das Programm nbstat die Ausgabe nicht auf der Standardausgabe aus sondern direkt auf eine Konsole. In dem Fall würde man kein Ergebnis bekommen wenn man die Standardausgabe auf einen internen Speicher umlenkt (wie das beim Benutzten von der PHP-Funktion shell_exec gemacht wird).
    Wie man dieses Problem aber sauber lösen könnte weiß ich nicht.

    Du könntest höchstens die Ausgabe das Programms in eine Datei umleiten und anschließend per PHP die Datei auslesen. Aber das ist halt nicht wirklich sauber.

    Grüße
     
  5. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    jo die selbe idee hatte ich auch, aber das funktioniert irgendwie auch net ^^
    das is echt komisch

    PHP:
    <? php

    $tmpf   
    tempnam ( getcwd (),  'output' );
    $cmd     = new  COM ( 'WScript.Shell' );
    $exec    $cmd -> run ( 'cmd /C nbtstat -a 192.168.2.101 > '  $tmpf 0 true );
    $output  file_get_contents ( $tmpf );
    unlink ( $tmpf );

    print 
    $output ;
     
  6. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    Hmmm also ich hab das grade mal probiert und bei mir funktioniert sogar das hier problemlos:

    PHP:
    <? php

    print  shell_exec 'nbtstat -a 127.0.0.1'  );

    ?>
    Weiß auch nicht warum das bei dir/euch anders ist XD

    //edit: vielleicht wird die ausgabe, warum auch immer, auch auf der standard fehlerausgabe ausgegeben. in dem fall müsste man die ausgabe per "2>" statt ">" in eine datei pipen.
     
  7. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    Danke erstmal für eure Beiträge!


    Jo, das ist echt komisch. Bei einigen Leuten scheint das zu funktionieren, bei anderen nicht... ?(

    Das mit dem Pipen bringt leider nichts... die Datei wird zwar erzeugt, aber es wird nichts reingeschrieben!
     
  8. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    also unterm apachen läuft es garnicht, auf der konsole bekomm ich folgendes:
    Code:
    D:\Programme\xampplite\php>php -f "../htdocs/nbtstat.php"
    Der Befehl "C:\Windows\System32\nbtstat.exe" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    ich denk php kommt mit den verschiedenen partitionen net klar. is ja bekannt das php damit so seine probleme hat.

    script:
    PHP:
    <? php

    print  shell_exec ( 'C:\\Windows\\System32\\nbtstat.exe -a 127.0.0.1' );
    system: win7 prof. 64bit
     
  9. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    Und das funktioniert jetzt bei dir?
    Bei mir geht da immernoch nichts!

    Wenn ich folgenden Befehl verwendet bekomme ich folgende Ausgabe:

    PHP:
    shell_exec ( "C:\\Windows\\System32\\nbtstat.exe -a XXX.XXX.XXX.XXX 2> test.txt" );
    Ausgabe (test.txt):

    Code:
    Fehler beim Zugriff auf NetBT-Treiber -- NetBT ist m"glicherweise nicht geladen
     
  10. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    nope keine chance. ich kann das teil noch nichtmal mit c ausführen. sogar wenn ich ne kopie mach gehts nicht.

    da muss man unter windows7 vermutlich erst gefühlte 1000 einstellungen machen...
     
  11. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    Hm... komisch.
    Das Ganze scheint aber bei einigen Leuten wunderbar zu funktionieren! ?(
    Wüsste echt gerne mal was bei denen anders ist!

    Hat sonst keiner mehr eine Idee?
    Kann nicht weitermachen bis ich die Lösung zu dem problem hab!
     
  12. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    hi,

    hab die geposteten scripts getestet und keins lief.
    kann es an der php version liegen.

    win7 x64 (apache; php 5.3.1 -> xampp v1.7.3)
     
  13. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    Welche PHP- Version verwendest du?
     
  14. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    Habe XAMPP 1.7.3 ( Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 ) unter Windows XP installiert.
    Überlege grade ob es mit den Benutzerrichtlinien zusammenhängen könnte. XAMPP wird bei mir mit einem Benutzer mit Administrationsrechten gestartet. Vielleicht ist das bei dem Programm irgendwie notwendig.

    Grüße
     
  15. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    Oder vielleicht auch an Windows "Root" - Adminrechten mit denen Ihr drinnen seit oder auch nicht ?
     
  16. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    Also Rechte besitze ich alle (Admin), soweit ich weiß (arbeite da noch nichts so lange und hab mir den PC nicht genauer angeschaut, aber bin mir relativ sicher).

    Ich denke aber dass es schon was mit PHP an sich zu tun hat, da ich das Kommando (nbtstat ...) sowohl in der Konsole (cmd), als auch über eine .bat- Datei problemlos ausführen kann.
    Wenn ich jetzt aber beispielsweise die .bat- Datei über PHP starte, bekomme ich wieder kein Ergebnis geliefert (lasse das hier in einer Datei ausgeben).
    Ansonsten funktionieren aber alle Befehle die ich so kenne problemlos (ipconfig, netstat, chkdsk, ping, tracert, ver, etc.).
     
  17. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    ich denke diese exe wird speziell gehandlet.

    man kann das teil in einem c (!) programm nicht mit "system" ausführen und via winapi (CreateProcess) bekomme ich errno:2 (file not found).

    kurz: vergiss es, das klappt nicht. nichtmal ein workarround funktioniert.
     
  18. 15. April 2010
    AW: nbtstat liefert kein Ergebnis

    Hm... so schnell geb ich da nicht auf.
    Bei myth2806 funktioniert das ja und bei vielen anderen Leuten wohl auch.
    Hab eine Funktion mit ähnlichem Inhalt im Inet gefunden und die Leute da haben sich auch für den Post bedankt und sich gefreut (Zitat: "YEAHH"). D.h. für mich dass es bei denen wohl auch funktioniert.

    Nur irgendwas ist da verdammt merkwürdig und ich kann mir nicht vorstellen wo das Problem liegt.
     
  19. 16. April 2010
    AW: nbtstat liefert kein Ergebnis

    Als letzte Verzweiflungstat, könntest du erstmal alle PHP-funktionen durchprobieren, die ein externes programm ausführen. Vielleicht behandeln die alle ein Programm unterschiedlich.
    system()
    passthru() - Ausgabe per ob-buffer abfangen
    exec()
    proc_open()
     
  20. 16. April 2010
    AW: nbtstat liefert kein Ergebnis

    Hat leider alles nicht funktioniert...
     
  21. 16. April 2010
    AW: nbtstat liefert kein Ergebnis

    ich hab mir mal mit php mal alle datein anzeigen lassen (scandir) und manche exe-files sind nicht dabei (u.a. nbtstat.exe), daher geh ich davon aus das diese datei keinen eltern-prozess haben darf (sei es php oder c).

    ein ausführen über drittprogramme ist somit nicht möglich.
     
  22. 16. April 2010
    AW: nbtstat liefert kein Ergebnis

    Kann ich mir nicht vorstellen. Dann würde das ja bei myth2806 auch nicht funktionieren.
    Glaube nicht dass das direkt mit dem Prozess zusammenhängt, sondern eher mit irgendwelchen Einstellungen in Windows. ?(

    Aber danke auch an euch für die rege Teilnahme an dieser "Diskussion"!!!
     
  23. 16. April 2010
    AW: nbtstat liefert kein Ergebnis

    Ich finde das aber sehr interessant, dass manche dateien bei einem scandir nicht angezeigt werden. Sowas "kompliziertes" kann das NTFS-dateisystem doch eigendlich gar nicht XD. Auch grade wenn man die exe in ein anderes verzeichnis kopiert, müsste sie ja eigendlich problemlos ausfürhbar sein. und beim aufruf per php wird ja auch nicht irgendwas von wegen "Der Befehl "nbtstat" ist entweder falsch geschrieben oder konnte nicht gefunden werden." ausgegeben sondern halt nichts. wirklich ein sehr interessantes problem.
     
  24. 16. April 2010
    AW: nbtstat liefert kein Ergebnis

    Falls dies ein versteckter prozess "Programm" ist - sichtbar machen vielleicht hilfts ja was - sorry nur bei windows weiss man ja nie.

    Also kann man php ausschliessen würd ich sagen ..
     
  25. 16. April 2010
    AW: nbtstat liefert kein Ergebnis

    @myth2806: Jo, das stimmt.
    So ein langlebiges Problem hab ich noch nie gehabt. Auch im Internet gibt es zwar manche Seiten auf denen andere Leute auch posten dass das bei ihnen nicht geht, aber eine Lösung hab ich bis jetzt noch nicht gefunden (obwohl es bei vielen anderen wohl funktioniert).

    Stelle das Problem jetzt auch mal bei php.de rein. Vielleicht wissen die noch eine Möglichkeit.

    @freakZ: Wie meinst du das?
     
  26. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.