domainlist.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. $apiUserName = $vars['api_username'];
  3. $apiPassword = $vars['api_password'];
  4. $listDomains= [];
  5. if (isset($_POST['readcsvapi']) && $_POST['readcsvapi'] == "true") {
  6. $getDomainslist = getDomainsAPI($apiUserName, $apiPassword);
  7. if ($getDomainslist['status'] == "success") {
  8. if (str_contains($getDomainslist['data'], 'Unauthorized')) {
  9. $error = $getDomainslist['data'];
  10. } else {
  11. $strDomainslist = explode ("\n", $getDomainslist['data']);
  12. unset($strDomainslist[0]);
  13. $listDomainsArry = array_values($strDomainslist);
  14. foreach ($listDomainsArry as $key => $val) {
  15. $getData = explode (",", $val);
  16. if ($getData[0] !="") {
  17. $listDomains[$key]['domainName'] = $getData[0];
  18. $listDomains[$key]['domainDate'] = date("d.m.Y", strtotime($getData[1]));
  19. $listDomains[$key]['dnsSec'] = $getData[2];
  20. $listDomains[$key]['nameServers'] = $getData[3];
  21. }
  22. }
  23. function date_compare($a, $b)
  24. {
  25. $t1 = strtotime($a['domainDate']);
  26. $t2 = strtotime($b['domainDate']);
  27. return $t1 - $t2;
  28. }
  29. usort($listDomains, 'date_compare');
  30. }
  31. } else {
  32. $error = $getDomainslist['data'];
  33. }
  34. }
  35. function getDomainsAPI($apiUserName, $apiPassword) {
  36. $curl = curl_init();
  37. $headers = array(
  38. 'Authorization: Basic '. base64_encode($apiUserName.':'.$apiPassword),
  39. );
  40. curl_setopt_array($curl, array(
  41. CURLOPT_URL => "https://registrar.nic.ch/dnlist/{$apiUserName}/domain-{$apiUserName}.csv",
  42. CURLOPT_RETURNTRANSFER => true,
  43. CURLOPT_ENCODING => "",
  44. CURLOPT_MAXREDIRS => 10,
  45. CURLOPT_TIMEOUT => 30,
  46. CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  47. CURLOPT_CUSTOMREQUEST => "GET",
  48. CURLOPT_HTTPHEADER => $headers,
  49. ));
  50. $response = curl_exec($curl);
  51. $err = curl_error($curl);
  52. curl_close($curl);
  53. if ($err) {
  54. $response = ["status" => "error", "data" => "cURL Error #: { $err}"];
  55. } else {
  56. $response = ["status" => "success", "data" => $response];
  57. }
  58. return $response;
  59. }
  60. include 'header.php';
  61. ?>
  62. <div class="csv_page col-md-12">
  63. <?php
  64. if (isset($error)) {
  65. echo '<div class="alert alert-danger" role="alert">
  66. ' . $error . '!
  67. </div>';
  68. }
  69. ?>
  70. <div class="row">
  71. <div class=" col-md-4">
  72. <div class="csv_file_upload">
  73. <form action="" method="post">
  74. <input type="hidden" name="readcsvapi" value="true" id="readcsvapi">
  75. <div class="form-group">
  76. <label>Get Domains List From Registry</label>
  77. </div>
  78. <div class="form-group">
  79. <input type="submit" value="Get Domains" class="btn btn-primary" name="submit">
  80. </div>
  81. </form>
  82. </div>
  83. </div>
  84. </div>
  85. <div class="list_domain">
  86. <table class="table table-stripped" id="csvdomains">
  87. <thead class="thead-dark">
  88. <tr>
  89. <th scope="col">Domain Name</th>
  90. <th scope="col">Date</th>
  91. <th scope="col">DNSSec</th>
  92. <th scope="col">Nameserver</th>
  93. </tr>
  94. </thead>
  95. <tbody>
  96. <?php
  97. if(count((array)$listDomains) > 0){
  98. $counter = 0;
  99. foreach ($listDomains as $key => $val) {
  100. echo '<tr><td>' . $val['domainName'] . '</td><td >' . $val['domainDate'] . '</td><td>' . $val['dnsSec'] . '</td><td>' . str_replace(";","<br>",$val['nameServers']) . '</td></tr>';
  101. $counter++;
  102. }
  103. }
  104. ?>
  105. </tbody>
  106. </table>
  107. </div>
  108. </div>
  109. <script>
  110. $(function() {
  111. $("#csvdomains").dataTable({
  112. order: [[2, "asc"]]
  113. });
  114. });
  115. </script>