Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [cUrl] jak poprawnie identyfikować czy domena istnieje i czy serwer działa?
marcinpl87
post 30.10.2009, 17:01:20
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 22.05.2007

Ostrzeżenie: (0%)
-----


Witam
Napisałem taki kod:
  1. <?
  2. $curl = curl_init(); //inicjuje curla
  3. curl_setopt($curl, CURLOPT_URL, $_GET['site']); //definiuje adres
  4. curl_setopt($curl, CURLOPT_HEADER, 1); //wlacza zwracanie naglowkow
  5. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //przekierowanie wyjscia do zmiennej
  6. curl_setopt($curl, CURLOPT_TIMEOUT, 60); //timeout curla
  7. $wyjscie = curl_exec($curl); //przypisanie wyjscia do zmiennej
  8. curl_close($curl); //zamkniecie polaczenia przez curl
  9. echo $wyjscie;
  10. ?>

Problem w tym że gdy dodaję do sprawdzenia domenę która nie istnieje, to mój skrypt nie zwraca mi 404, ani żadnego sensownego komunikatu, tylko na jednym hostingu zwraca mi nagłówek 200OK oraz stronę http://d2.pl/ (to pewnie hostingodawca albo reseler), a na innym serwerze dostaję pustą stronę i nie ma nagłówka (czyli reakcja taka jak w przypadku kiedy curl łączy się z działającym serwerem ale serwer muli i mój skrypt łapie timeouta).
Jak przerobić ten skrypt żeby poprawnie identyfikować:
1) czy domena istnieje?
2) jeśli istnieje to czy serwer działa?
3) jeśli nie działa to czy jest to timeout czy błąd 404?

(Pisałem już kiedyś o curlu w temacie http://forum.php.pl/index.php?showtopic=132683 ale teraz mam trochę inny problem dlatego założyłem nowy wątek.)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
pysio
post 5.11.2009, 12:28:07
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 4.11.2004
Skąd: Lublin

Ostrzeżenie: (10%)
X----


1. checkdnsrr(domena,'A')
zwrocu true jesli istnieje

2. pingowac niema sensu - moze seerwer www dzialac a nie odpingowywac
mozna sprawdzic czy da sie pobrac strone startowa na serwerze

3. jesli zwroci 404 to blad 404
jesli nie to timeout

Go to the top of the page
+Quote Post
laohost
post 5.11.2009, 13:30:47
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 2
Dołączył: 12.09.2009

Ostrzeżenie: (0%)
-----


curl_error
curl_errno

I w praktyce:
  1. if (curl_errno($c))
  2. {
  3. echo 'Błąd: '.curl_error($c);
  4. }
  5. else
  6. {
  7. echo $wyjscie;
  8. }


--------------------
Stabilny i tani hosting z PHP. Ceny już od 39 zł brutto/rok!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:40