İstərdim ki, bu gün sizinlə online.az saytında olan domeninizin NS-lərini php vasitəsi ilə dəyişməyi göstərim.
Mən skripti yazdım, WAMP-da curl əlavəsini yandırdım və skripti yoxladım. Mənim online.az hesabımdakı domenin NS-ləri dəyişdim. Sadəcə problem ondadır ki, online.az saytına yalnız Azərbaycanda olan qurğu daxil ola bilər. Yəni ki, sən NS-ləri server vasitəsi ilə dəyişmək üçün Azərbaycanda olan serverdən istifadə etməlisən. Və ya öz serverinin yerini dəyişmədən sadə olan Azərbaycanda yerləşdirilmiş serverdə hosting ala bilərsən. Sənə hoster.az-ı məsləhət görərdim. İllik 14 AZN sadəcə. Amma dəqiq bilmirəm serverləri Azərbaycanda yerləşir ya yox. Zəng eliyib soruşmaq lazımdır. Əgər Azərbaycanda yerləşirsə onda onlardan hosting almalısan. Azərbaycandan kənarda online.az serverinə requestlər qəbul olunmur. O ki, qaldı yazdığım skriptə. Skriptdə sadəcə 3 dəyişəni dəyişməlisən.
$username – sənin online.az hesabının istifadəçi adı
$password – sənin online.az hesabının şifrəsi
$domainid – sənin hesabında mövcud olan domenin ID nömrəsi
Domenin id-sini bilmirsən necə əldə edəsən?
Bu çox sadədir (Google Chrome versiyası):
1. Hesabına daxil ol
2. Domenlərinin siyahısına keç
3. Handı domenin İD nömrəsini əldə etmək istəyirsənsə onun sağ tərəfində yerləşən DNS server dəyişdirmək ikonkasının üstünə mausun oxunu gətir və mausun sağ düyməsini bas və “İnspect element” seçimini seç.
<img src="css/images/domain-icon-ns.png">
bu yazının üstündə bu tipdə yazı olacaq.
<a href="" data-toggle="tooltip" title="" data-id="123456789" class="domain-icon domain-icon-ns domain_mod_1" data-original-title="DNS server">
data-id=”123456789″ Gördüyümüz kimi 123456789 bizim dəyişmək istədiyimiz domenin İD-sidir.
Sıra gəldi PHP koda:
<?php // CONFIG // $username = ''; // online.az hesabinin istifadeci adi $password = ''; // online.az hesabinin sifresi $domainid = ''; // domenin ID nomresi hansi ki NS-leri deyisecek // NS-leri qeyd edin $datas['ns[0]'] = 'DNS1.YANDEX.NET'; // Misal ucun DNS1.YANDEX.NET $datas['ns[1]'] = 'DNS2.YANDEX.NET'; // Misal ucun DNS2.YANDEX.NET $datas['ns[2]'] = 'DNS3.YANDEX.NET'; $datas['ns[3]'] = ''; $datas['ns[4]'] = ''; $datas['ns[5]'] = ''; $datas['ns[6]'] = ''; $datas['ns[7]'] = ''; $datas['ns[8]'] = ''; $datas['ns[9]'] = ''; $datas['ns[10]'] = ''; $datas['ns[11]'] = ''; $datas['ns[12]'] = ''; $datas['ns[13]'] = ''; // CONFIG END // //Please don't edit below! @header('Content-Type: text/html; charset=utf-8'); // cookie // $tmpfname = tempnam("/tmp", "FOO"); $handle = fopen($tmpfname, "w"); fwrite($handle, ''); fclose($handle); // cookie // function posttoscript($url,$data) { global $tmpfname; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_COOKIEJAR, $tmpfname); curl_setopt($ch, CURLOPT_COOKIEFILE, $tmpfname); curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ch); return $response; } function file_get_contents_curl($url) { global $tmpfname; $ch = curl_init(); curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_COOKIEJAR, $tmpfname); curl_setopt($ch, CURLOPT_COOKIEFILE, $tmpfname); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'); $data = curl_exec($ch); curl_close($ch); return $data; } $get = file_get_contents_curl('https://online.az/index.php'); $url = 'https://online.az/?r=site/login'; $data['LoginForm[username]'] = $username; $data['LoginForm[password]'] = $password; $post = posttoscript($url,$data); if(preg_match('/İstifadəçi adı və ya şifrə yalnışdır/', $post)) { die('İstifadəçi adı və ya şifrə yalnışdır'); } unset($data); $url = 'https://online.az/?r=account/setns'; $datas['product'] = $domainid; $datas['modify'] = 'true'; $post = posttoscript($url,$datas); if($post == 'authorization error') { die('DNS Serverləri dəyişmək mümkün olmadı!'); } else { echo 'DNS serverlər dəyişdi!'; } ?>