Curl foutmelding https vanop mijn webhosting
1Ik gebruik de functie Curl om e communiceren met sites.
Sommige https sites geven een response maar andere https sites geven een foutmlding zoals hieronder
Quote:
Failed to connect to www[.]elevator-audio[.]co[.]uk port 443: Connection refused
Dit gebeurt wanneer ik het script uitvoer vanop mijn webhost.
Wanneer ik het uitvoer vanop mijn lokale XAMPP installatie werk het wel.
Hebben jullie een idee ?
Bedankt
Hugo
Gewijzigd op 06/11/2020 14:19:06 door Hugo Wachters
Welke waardes geef je mee aan het cURL-script?
Het scriptje is
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent );
curl_setopt($ch, CURLOPT_REFERER, $referrer);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER,true);
curl_setopt($ch, CURLOPT_ENCODING,"");
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
$headers = array(
"Cache-Control: no-cache",
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$contents = curl_exec($ch);
?>
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent );
curl_setopt($ch, CURLOPT_REFERER, $referrer);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER,true);
curl_setopt($ch, CURLOPT_ENCODING,"");
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
$headers = array(
"Cache-Control: no-cache",
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$contents = curl_exec($ch);
?>
$url, $useragent en $referrer worden via een forumulier meegegeven.
Zoals vermeldt xwerkt het met http adressen en soppige https adressen
Bij andere, zoals degenen die in de foutmelding werkt het niet vanop mijn webhosting
Vanop mijn lokale XAMPP installatie werkt het wel.
Bedankt
Hugo
Edit:
Code-tags geplaatst i.p.v. quote-tags die bedoeld zijn voor citeren van tekst.
Gewijzigd op 06/11/2020 15:28:10 door - Ariën -
Eigenlijk is het beter om deze op true te zetten, en een CA-certificaat mee te geven in je configuratie:
https://www.saotn.org/dont-turn-off-curlopt_ssl_verifypeer-fix-php-configuration/
Maar voor niet-belangrijk gebruik zou het weinig kwaad kunnen. Als er nou transactionele handelingen aan te pas komen, zoals belangrijke requests plaatsvinden zoals betalingshandelingen, dan zou ik die werkwijze zeker toepassen.
Gewijzigd op 06/11/2020 15:35:19 door - Ariën -
Ik heb het net toegevoegd maar ik krijg spijtig genoeg dezelfde foutmelding voor bijvoorbeeld https[://]www[.]elevator-audio[.]co[.]uk
Gewijzigd op 06/11/2020 15:59:11 door - Ariën -
En wanneer ik de ssl test uitvoer van ssllabs dan krijg ik een A op de overall test
Het kan ook zijn dat de site gzip'ped is, en dat je een oude cURL hebt. Dat heb ik ook ooit eens gemaakt (tip: Timeout in cURL instellen).
Gewijzigd op 06/11/2020 16:19:22 door - Ariën -
Andere tools kunnen wel connecteren met de site.
En op mijn lokale Xampp installatie blijft het lukken
Zou het ergens een setting kunnen zijn ?
Of een versie van 1 of andere library ?
Wat doen die andere tools dan? En draaien die op dezelfde server?
Draai je wel een recente cURL op je webhosting?
Gewijzigd op 06/11/2020 16:45:16 door - Ariën -
bedankt voor de tip.
Ik heb reeds gezet en redelijk hoog 60sec
En als hij zou timeouten geeft het een andere fout.
60 seconden is wel heel extreem. 10 seconden lijkt me vrij gangbaar.
> Opeens kan een blokkade erop zitten. Dus controleer dat eens.
Wat doen die andere tools dan? En draaien die op dezelfde server?
Draai je wel een recente cURL op je webhosting?
Op mijn host heb ik PHP 7.3 met libcurl 7.64.0
Het rare is dat mijn Xammp installatie is PHP 7.2.32 maar versie van libcurl is 7.67.0
Ik kan blijkbaar wel upgraden naar php 7.4 op mijn hast maar ik denk niet dat ik de libcurl apart kan upgraden.
Misschien moet ik de vraag eens stellen aan de server
Toevoeging op 06/11/2020 17:04:59:
- Ariën - op 06/11/2020 17:02:09:
60 seconden is wel heel extreem. 10 seconden lijkt me vrij gangbaar.
Ja, das waar. Maar ik ben een tool aan het schrijven om sites te testen over de hele wereld en heb al gemerkt dat sommige site extreem traag reageren. Met 30 seconden kreeg ik nog verschillende sites die timeouten.
Test eens i.p.v. de hostname het IP van die site.
Zal ik dan ook de poort 443 zetten in curl ?
Probeer eens beiden. Dus poort 80 en 443
Het geeft spijtig genoeg dezelfde foutmelding bij poort 80 en poort 443
- DNS speelt dus geen rol
- HTTPS problemen kan je ook uitsluiten
Vraag de serverbeheerder van die site eens. Die heeft jouw IP blijkbaar geblokkeerd.
Gewijzigd op 06/11/2020 18:37:51 door - Ariën -
Nog eens, bedankt.
Waarom zou je deze site willen benaderen via cURL? Het ziet er uit als een portfolio site/pagina? Wat doe je uiteindelijk met de opgevraagde informatie? Ben je aan het webscrapen ofzo?
Sorry voor de late reactie
Ik was een tool aan het schrijven voor gebruikers die problemen met hun site kunnen runnen en eventuele problemen detecteert en ook de HTML weergeeft van die site met bepaalde informatie gehighlight.
I ben dus niet aan d-het scrapen, waarom zou ik dat doen ?
> aan ARiën, ik denk dat ik het me jouw hulp werkende heb gekregen voor de meeste sites. Nog eens bedankr