Hallo,
Ik probeer een eigen dyndns op te zetten. Het is dus de bedoeling dat zodra een dynamisch ip adres veranderd, dat dit dan aan DirectAdmin doorgegeven wordt. Ik kan dan via cron elke x minuten dit script op de server aanroepen, en als mijn ip adres veranderd is, dan wordt het in DA aangepast. Hiervoor heb ik het volgende scriptje.
In myIP.txt komt het juiste ip adres te staan. Echter bij het updaten in DirectAdmin krijg ik eenPHP Code:
<?php
error_reporting(E_ALL);
#getting the public IP address
$wanIP = $_SERVER['REMOTE_ADDR'];
#echo $ip;
#echo $wanIP=file_get_contents('http://domain.com/dyndns/ip.php');
#$wanIP = trim($wanIP);
#getting the previous IP address
$oldIP = "myIP.txt";
$fh = fopen($oldIP, 'r');
$oldip = fgets($fh);
fclose($fh);
#saving the current IP address
$currentIP="myIP.txt";
$fh = fopen($currentIP, 'w');
$stringData = $wanIP;
fwrite($fh, $stringData);
fclose($fh);
#Debug line
echo "This is my old IP $oldip and this is my $wanIP";
echo updateDADNS('<SERVER-IP>','<DA-GEBRUIKER>','<DA-WACHTWOORD>','<DOMAIN>','<SUBDOMAIN>',$wanIP,$oldip);
#echo "\n RUNNING DNS UPDATER";
function updateDADNS($ip,$username,$password,$domain,$recName,$wanIP,$oldip) {
if( $oldip != $wanIP ) {
if($wanIP != "") {
$url = 'http://'.$ip.':2222';
// set temp cookie
$ckfile = tempnam ("/tmp", "CURLCOOKIE");
// make list of POST fields
$fields = array(
'referer' =>urlencode('/'),
'username'=>urlencode($username),
'password'=>urlencode($password)
);
$fields_string='';
}
rtrim($fields_string,'&');
$ch = curl_init();
curl_setopt($ch,CURLOPT_COOKIEJAR, $ckfile);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_URL,$url.'/CMD_LOGIN');
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
$result = curl_exec($ch);
echo 'result: '.$result;
if($result===false) {
die('CURL ERROR: '.curl_error($ch));
echo 'die';
} else {
curl_setopt($ch,CURLOPT_URL,$url.'/CMD_API_DNS_CONTROL?domain='.$domain);
curl_setopt($ch,CURLOPT_COOKIEFILE, $ckfile);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo 'LIST'.$result;
curl_setopt($ch,CURLOPT_URL,$url.'/CMD_API_DNS_CONTROL?domain='.$domain.'&action=select&arecs0=name='.$recName.'&value='.$wanIP);
curl_setopt($ch,CURLOPT_COOKIEFILE, $ckfile);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo '\nDELETE'.$result.'\n';
curl_setopt($ch,CURLOPT_URL,$url.'/CMD_API_DNS_CONTROL?domain='.$domain.'&action=add&type=A&name='.$recName.'&value='.$wanIP);
curl_setopt($ch,CURLOPT_COOKIEFILE, $ckfile);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo '\nADD'.$result.'\n';
curl_close($ch);
if($result===false) {
die('CURL ERROR: '.curl_error($ch));
} else {
return $result;
}
}
} else {
echo 'The WAN IP was empty Ive done no update';
}
}
?>Ik heb geen idee wat er nu precies fout gaat hier. Kunnen jullie eens naar dit scriptje kijken wat het probleem is?Code:CURL ERROR: Failure when receiving data from the peer
Aanvullend bericht:
Na wat googlen het probleem gevonden!
Dit is een juist werke versie:
Er zat een redirect naar httpS:// Dus dat even aangepast. En er miste een klein stukje.PHP Code:
<?php
error_reporting(E_ALL);
#getting the public IP address
$wanIP = $_SERVER['REMOTE_ADDR'];
#echo $ip;
#getting the previous IP address
$oldIP = "myIP.txt";
$fh = fopen($oldIP, 'r');
$oldip = fgets($fh);
fclose($fh);
#saving the current IP address
$currentIP="myIP.txt";
$fh = fopen($currentIP, 'w');
$stringData = $wanIP;
fwrite($fh, $stringData);
fclose($fh);
#Debug line
echo "This is my old IP $oldip and this is my $wanIP";
echo updateDADNS('<SERVER-IP>','<DA-GEBRUIKER>','<DA-WACHTWOORD>','<DOMAIN>','<SUBDOMAIN>',$wanIP,$oldip);
#echo "\n RUNNING DNS UPDATER";
function updateDADNS($ip,$username,$password,$domain,$recName,$wanIP,$oldip) {
if( $oldip != $wanIP ) {
if($wanIP != "") {
$url = 'https://'.$ip.':2222';
// set temp cookie
$ckfile = tempnam ("/tmp", "CURLCOOKIE");
// make list of POST fields
$fields = array(
'referer' =>urlencode('/'),
'username'=>urlencode($username),
'password'=>urlencode($password)
);
$fields_string='';
foreach($fields as $key=>$value) {
$fields_string .= $key.'='.$value.'&';
}
rtrim($fields_string,'&');
$ch = curl_init();
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_COOKIEJAR, $ckfile);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_URL,$url.'/CMD_LOGIN');
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
$result = curl_exec($ch);
echo 'result: '.$result;
if($result===false) {
die('CURL ERROR: '.curl_error($ch));
echo 'die';
} else {
curl_setopt($ch,CURLOPT_URL,$url.'/CMD_API_DNS_CONTROL?domain='.$domain);
curl_setopt($ch,CURLOPT_COOKIEFILE, $ckfile);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo 'LIST'.$result;
curl_setopt($ch,CURLOPT_URL,$url.'/CMD_API_DNS_CONTROL?domain='.$domain.'&action=select&arecs0=name='.$recName.'&value='.$wanIP);
curl_setopt($ch,CURLOPT_COOKIEFILE, $ckfile);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo '\nDELETE'.$result.'\n';
curl_setopt($ch,CURLOPT_URL,$url.'/CMD_API_DNS_CONTROL?domain='.$domain.'&action=add&type=A&name='.$recName.'&value='.$wanIP);
curl_setopt($ch,CURLOPT_COOKIEFILE, $ckfile);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo '\nADD'.$result.'\n';
curl_close($ch);
if($result===false) {
die('CURL ERROR: '.curl_error($ch));
} else {
return $result;
}
}
} else {
echo 'The WAN IP was empty Ive done no update';
}
}
}
?>
- Curl probleem.
-
01-02-2013, 11:52 #1
- Berichten
- 132
- Lid sinds
- 17 Jaar
Curl probleem.
Laatst aangepast door John P : 01-02-2013 om 15:18 Reden: Automatisch samengevoegd.
-
In de schijnwerper
-
02-02-2013, 08:15 #2
- Berichten
- 558
- Lid sinds
- 16 Jaar
Re: Curl probleem.
Ik had gisteren hetzelfde probleem, deze lijn doet de trick:
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic