Autor Zpráva
miskith
Profil
Dobrý den,
Chtěl bych se zeptat, jestli někdo neví, proč mi na novém hostingu nefunguje fsockopen? Na původním hostingu mi to fungovalo i s Timeoutem 1 a nyní mi to nefunguje ani s timeotem 50.
Chyba:
[110] - Connection timed out.

Kód:
if (isset($online_status) && $online_status==1)
{
    if (!$sock = @fsockopen($ip, $port, $num, $error, $timeout))
        //define("ONLINE", 0);
        die("[".$num."] - ".$error);
    else
    {
        define("ONLINE", 1);
        fclose($sock);
    }
}


Popřípadě pokud by to nešlo nějak vyřešit, jak prosím pingnout IP adresu i s portem jiným rychlým způsobem?

Mockrát děkuji za odpověď.
EDITED: Pokud je potřeba někde povolit přístup na jiný server nebo tak, mám plný přístup do CPanelu a WHM.
PostCC
Profil
miskith:
Hádám, že odpověď bude skryta v tom zavináči před FSockOpen(). Mnohdy se člověk dozví víc když někde něco chybí než přebývá...
miskith
Profil
No..tak bez zavináče to vypíše stejnou chybu, jako sem si vypsal ručně...
Warning: fsockopen() [function.fsockopen]: unable to connect to IP:PORT (Connection timed out) in ...
PostCC
Profil
miskith:
Nuž, pak tedy logickou dedukcí dospívám k závěru, že:
1) cílový server není na daném portu dostupný
2) zdrojový server blokuje odchozí spojení na daném portu
miskith
Profil
K bodu č.1. jak jsem již psal, tak sem přecházel na jiný hosting, tudíž mám z původního hostingu překopírovaný úplně stejný kód, který byl funkční.
A k bodu č.2, nevíš jak to vyřešit?
PostCC
Profil
miskith:
Bod 1) může souviset s bodem 2). Na cílovém serveru může být umožněno připojení pouze pro IP adresu původního serveru, z jiné adresy nemusí být dostupný. Tak ty firewally, mršky, holt fungují.
Ad 2) - jasně, povolit odchozí spojení pro daný port. Nejlépe nastavením pravidla firewallu nebo jiného nástroje, který to v současnosti blokuje.
Kdybych znal cílovou IP a port, mohl bych od sebe ověřit, že problém není na cílové straně. Nicméně váš příspěvek je na informace poněkud skoupý.
miskith
Profil
No..to sem taky zapomněl napsat, že cílová IP adresa je můj hosting (server hosting) a PHP na jiném hostingu kontroluje, jestli běží aplikace (pod portem). Tudíž určitě není blokován přístup pouze ze starého hostingu. A na novém hostingu, ačkoli mám plná práva mi při pokusu o vstup do "ConfigServer Security&Firewall" ve WHM píše "You do not have access to ConfigServer Firewall.", tudíž nemůžu měnit nastavení firewallu. Ohledně aplikace na server hostingu, tak ta má povolený ve firewallu přístup z jakékoli IP (což i dokazuje script, který na předchozím hostingu fungoval). Ohledně toho, že jsem neposkytnul IP a port se omlouvám, ale bylo to z důvodu, že sem přesvědčen, že je chyba na straně nového hostingu, ale pokud myslíte, že to pomůže, ok:

IP : 81.91.80.190
Port: 8085

Údaje webhostingu:
Typ: Reseller (Total unlimited)
Hostování: Mimo ČR (stejně jako původní hosting)
Mé pravomoce: Plná práva
Verze PHP: 5.2.9
OS: Linux

Pokud potřebujete ještě nějaké údaje, napište.
PostCC
Profil
miskith:
Dobře. Mně to funguje se sekundovým timeoutem - pokus o FSockOpen() na 81.91.80.190:8085, odezva OK. Pokud se tam tedy neproboucháte ani z Telnetu, pak asi nezbude nic jiného než:
1) požádat webhosting o uvolnění průchodu na zmíněný port
2) provozovat aplikací na svém hostingu pod jiným portem
Bod 2) není právě nejlepší řešení, protože použít nějaký standardní port znamená, že po něm bude pouštět komunikaci, která se na něm neočekává, na druhou stranu nestandardní porty zřejmě budou zakázány ze strany hostingu všechny. Víc nevím.
miskith
Profil
A nějaký jiný rychlý způsob, jak pingnout IP a port? Zkoušel jsem něco co sem našel na internetu pro ping IP adresy a přidávat :8085 , ale nic nešlo, takže jsem to buď dělal špatně nebo to tak nejde. Existuje tedy jiný způsob jak pingovat IP pod portem?
PostCC
Profil
miskith:
Ping je ICMP echo, tedy odezva serveru na, pokud se nepletu, portu 7. To, co děláte tedy není ping, nýbrž pokus o navázání komunikace na konkrétním portu. Buď tedy můžete provádět ping nebo otevírat port 8085, jsou to dvě různé věci.

Zároveň platí, že pokud server blokuje odchozí komunikaci na portu 8085, pak není cesta, jak na tomto portu komunikaci otevřít.
miskith
Profil
Dobře, děkuji tedy. Takže mi asi nezbývá nic jiného než napsat na hosting.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0