fsockopen problem

Bash, Shell, PHP, Python, Perl, CGI
stream4fun
Posts: 12
Joined: 2009-02-26 00:08

fsockopen problem

Post by stream4fun »

Hallo leutz

ich habe hier ein kleines PRoblemchen...

Ich möchte gern eine abfrage nutzen, die überprüft, ist der Port besetzt, Ja oder Nein. bei beiden kommt dann eine ausgabe Online oder Offline... auf server1 (suselinux 10.3) funktioniert das anstandslos. Wenn port belegt, zeigt er online an, bei frei dann halt offline...
auf meinem 2. server (debian ETCH) funktioniert es nicht vollständig. wenn port besetzt funzt es, wenn der port aber frei ist kommt folgende fehlermeldung....... ich bin ratlos
Warning: fsockopen() [function.fsockopen]: unable to connect to IP_adresse:Port(Connection refused) in /var/www/space/***/id/***/conf.php on line 5
** IP und Port entfernt hab und mit wörter ausgetauscht hab

vlt habt ihr da bissel ahnung von? und ich hoffe das ich im Richtigem unterforum gelandet bin wenn nicht schubst einfach ;)
User avatar
daemotron
Administrator
Administrator
Posts: 2639
Joined: 2004-01-21 17:44

Re: fsockopen problem

Post by daemotron »

Thema nach Scripting / PHP verschoben

Kannst Du bitte mal das Skript (oder falls es umfangreicher ist, nur den relevanten Teil) posten, mit dem Du versuchst, den Socket zu öffnen? Glaskugel-Diagnosen sind im Allgemeinen wenig hilfreich...

P. S. wie läuft denn PHP (unter welchem User, mit welcher Technik) auf der Etch-Kiste? Hasts Du vielleicht versucht einen Port <= 1024 ohne root-Rechte zu öffnen?
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time
stream4fun
Posts: 12
Joined: 2009-02-26 00:08

Re: fsockopen problem

Post by stream4fun »

ja sicherlich, ist ja eig nen welt bekannter code ...
<?php
$sock = fsockopen('ipadresse', port, &$errno, &$errstr, 5);
if(!is_resource($sock)) {
echo "<font color="#FF0000">offline</font>";
} else {
echo "<font color="#00BF00">online</font>"; }
?>
wie gesagt damit will ich ausgeben, online oder OFfline nur aber es folgt bei offline nur eine fehlermeldung

Habe ja 2 server, 1x suselinux und 1 x debian etch

und auf suselinux funzt das aber debian nein :(
danton
Posts: 47
Joined: 2006-01-10 17:45

Re: fsockopen problem

Post by danton »

Wahrscheinlich ist unter SuSE das Error-Reporting im PHP anders eingestellt, so daß Warnings nicht angezeigt werden. Bei Debuggen ganz hilfreich, aber in der produktiven Umgebung nicht immer erwünscht.
Entweder du stellst den Error-Level mit error_reporting zu Beginn deines Scripts runter, oder du schreibst ein @ vor den problematischen Befehl:

Code: Select all

$sock = @fsockopen('ipadresse', port, &$errno, &$errstr, 5);