Cara menggunakan gethostbyname php

Selamat malam semuanya, berikut ini saya ingin berbagi psotingan kawan dari Indonesia Fighter Cyber, cara mendapatkan ip asli dari situs yang bersembunyi di balik claud flare, mau tau scriptnya ?

beriktu penggalannya


 
    # CloudFlare IP Resolver

    # Coded By IFC
    # Http://ifc-keapfire.com

    function is_ipv4($ip)
    {
    return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ? $ip : '(Null)';
    }

    $me = $argv[0];
    $url = @$argv[1];

    if(!isset($url))
    die("\n[+] Usage: php {$me} \n[+] Example: php {$me} http://www.imgur.com\n");

    if(!preg_match('/^(https?):\/\/(w{3}|w3)\./i', $url))
    die("\nURL is invalid.\nURL must be formatted as: http(s)://www." . preg_replace('/^(https?):\/\//', '', $url) . "\n(for compatibility reasons)\n");

    $headers = get_headers($url, 1);
    $server = $headers['Server'];

    $subs = array('cpanel.', 'ftp.', 'server1.', 'cdn.', 'cdn2.', 'ns.', 'ns1.', 'mail.', 'webmail.', 'direct.', 'direct-connect.', 'record.', 'ssl.', 'dns.', 'help.', 'blog.', 'irc.', 'forum.');
    $count = count($subs);

    if(preg_match('/^(https?):\/\/(w{3}|w3)\./i', $url, $matches))
    {
    if($matches[2] != 'www')
    {
    $url = preg_replace('/^(https?):\/\//', '', $url);
    }
    else
    {
    $url = explode($matches[0], $url);
    $url = $url[1];
    }
    }

    if(is_array($server))
    $server = $server[0];

    if(preg_match('/cloudflare/i', $server))
    echo "\n[+] CloudFlare detected: {$server}\n";
    else
    echo "\n[+] CloudFlare wasn't detected, proceeding anyway.\n";

    echo '[+] IP: ' . is_ipv4(gethostbyname($url)) . "\n\n";
    echo "[+] Searching for more IP addresses.\n\n";

    for($x = 0; $x < $count; $x++)
    {
    $site = $subs[$x] . $url;
    $ip = is_ipv4(gethostbyname($site));

    echo "Trying {$site}: {$ip}\n";
    }

    echo "\n[+] Finished.\n";


    ?>

nah semoga bermanfaat ya, palig buat DDOS aja ya kan, ayo ngaku .... hahahaha... Salam Indonesia Fighter Cyber

         Pertama kali saya terjun di dunia kerja langsung menghadapi banyak materi yang asing. Namun materi pertama dan selalu saya gunakan sampai sekarang adalah suatu proses menjalankan aplikasi dan proses jalannya secara client dan server side, hal utama yang menurut saya perlu dipelajari adalah  Synchronus dan Asynchronus. Materi ini menurut saya sangat diperlukan untuk dasar pemrograman (walaupun saat kuliah tidak pernah ada :3). Walaupun secara tidak langsung hampir semua Web Developers  menggunakannya namun perlu Pengetahuan lebih dalam karena proses ini sederhana dan berdampak ke semua aspek kehidupan program Anda.

Apakah yang di maksud dengan Synchronouse?

Synchronous adalah proses jalannya program secara sequential , disini yang dimaksud sequential ada berdasarkan antrian ekseskusi program. Pada dasarnya semua Bahasa pemrograman menggunakan Asynchronouse terutama PHP.

Cotoh Synchronous di Bahasa Perograman PHP:

beri nama file synchronous.php

$now = date(‘Y-m-d’);

// antrian 1

echo $now.‘ |’;

$yesterday = date(‘Y-m-d’,strtotime(‘-1 days’));

// antrian 2

echo $yesterday.‘ |’;

$week = date(‘Y-m-d’,strtotime(‘-1 week’));

// antrian 3

echo $week.‘ |’;

?>

Hasil Eksekusi:

Cara menggunakan gethostbyname php
Hasil eksekusi file php sync

Penjelasan: Pada saat file synchronouse.php dieksekusi maka proses nya adalah membaca antrian 1 terlebih dahulu kemudian antrian 2 dan terakhir adalah antrian 3.

Apakah yang dimaksud dengan Asynchronous?

Asynchronous adalah proses jalannya program bisa dilakukan secara bersamaan tanpa harus menunggu proses antrian. Synchronous merupakan bagian dari Asynchronous (1 antrian) dimana proses akan dieksekusi secara bersamaan dan untuk hasil tergantung lama proses suatu fungsi synchronous . Asynchronouse hampir disemua Bahasa pemrograman ada namun untuk PHP masih belum ada. PHP sebagai server side hanya menyediakan synchronous namun bisanya di WEB Developers tetap digunakan namun menggunakan AJAX (Asynchronous Javascript And XML) untuk proses Asynchronouse.

Contoh Asynchronouse PHP + AJAX

Buat file HTML+CSS+AJAX dengan nama test.html

<style type=“text/css”>

  #sync

{

  width100px;

  height100px;

  backgroundred;

  -moz-border-radius50px;

  -webkit-border-radius50px;

  border-radius50px;

  float:left;

  margin:5px;

}

.one

{

  line-height100px;

  color:white;

  margin-left:30px;

  font-size:25px;

}

.two

{

  line-height100px;

  color:white;

  margin-left:30px;

  font-size:25px;

}

style>

<div id=“sync”><span class=“one”>0span>div>

<div id=“sync”><span class=“two”>0span>div>

<br />

<script src=“https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js” 

type=“text/javascript”>script>

<script type=“text/javascript”>

  $.ajax({

        url: ‘syncronous.php?1’,

        type: “GET”,

        success: function(result)

        {

          $(‘.one’).html(result);

          $(‘.one’).each(function () {

              $(this).prop(‘Counter’,0).animate({

                  Counter: $(this).text()

              }, {

                  duration: 4000,

                  easing: ‘swing’,

                  step: function (now) {

                      $(this).text(Math.ceil(now));

                  }

              });

          });

        }

      });

  $.ajax({

        url: ‘syncronous.php?2’,

        type: “GET”,

        success: function(result)

        {

          $(‘.two’).html(result);

          $(‘.two’).each(function () {

              $(this).prop(‘Counter’,0).animate({

                  Counter: $(this).text()

              }, {

                  duration: 4000,

                  easing: ‘swing’,

                  step: function (now) {

                      $(this).text(Math.ceil(now));

                  }

              });

          });

        }

      });

  

script>

Buat file PHP dengan nama syncronous.php

if(isset($_GET[“1”])){

    

    echo json_encode(20000);

if(isset($_GET[“2”])){

    

    echo json_encode(40000);

}

?>

 Hasil Eksekusi:

Cara menggunakan gethostbyname php
Nilai terus berjalan Secara bersamaan tanpa ada AntrianPenjelasan: Counter Nilai terus berjalan tanpa  ada antrian.

Berikut Source Code Link Gitlab apabila anda ingin mencoba: Link

Contoh Asynchronous di NODE JS

Di artikel saya sebelumnya pernah membahas chat menggunakan Socket.io dimana basic dari Realtime Chat dengan socket.IO ada Synchronous. Silahkan lihat di Artikel saya berikut : Realtime Chat dengan Html, Javascript dan Socket.io

1. Node JS : Tutorial Promise & Await di Node JS – Kiddy – Medium

2. Python : asyncio — Asynchronous I/O — Python 3.8.3 documentation

3. ASP.NET :

4. C# :Asynchronous programming in C# | Microsoft Docs

5. C++: async – C++ Reference – cplusplus.com

6. JAVA : Asynchronous Programming in Java | Baeldung

7. GO: Asynchronous programming with Go

8. Rubby : Asynchronous Ruby – codeotaku

 

Note: Synchronous  dan Asynchronous saling berkisambungan jadi apabila anda ingin lebih detail bisa Anda pahami lebih dalam. Kegunakan juga sesuai kebutuhan.

Semangat Belajar!!
Wassalamualaikum..

Email Real Checker adalah salah satu cara untuk menghindari apakah Email pengguna Real atau tidak sebelum kita kirim menggunakan Commercial Email provider. Salah satu masalah yang muncul apabila email yang kita kirim baik secara Transactional atau Campaign adalah Tidak ter Delivered dan Bouncing, sehingga kita sebagai pengguna akan terkena dampaknya yaitu suspend.  Kali ini kita akan membahas dan praktikkan Native REST API Email Checker menggunakan PHP. 

Berikut  Pengetahuan dasar sebelum kita coding:

1.       MX Record

           MX Record merupakan salah satu tipe record untuk menyatakan kemana dan bagaimana e-mail harus diarahkan. Untuk diarahkan tentu apabila suatu DNS atau hostname ter recrd maka akan vali dan sebaliknya. Apa Bisa Pointing MX Record menggunakan IP Address? Pointing mx record harus menggunakan hostname dan tidak bisa menggunakan ip address, tapi bagaimana caranya jika mx ingin dipointing ke ip tertentu? Caranya tentu saja harus membuat hostname dengan cara membuat record dns misalnya record mail dengan type A dan di pointing ke ip tersebut. Selanjutnya hostname yang telah didapatkan di test apakah sudah resolve ke ip yang tepat dan kemudian di setting pada mx recordnya.

           2. REST API

           REST (REpresentational State Transfer) merupakan standar arsitektur komunikasi berbasis web yang sering diterapkan dalam pengembangan layanan berbasis web. Umumnya menggunakan HTTP (Hypertext Transfer Protocol) sebagai protocol untuk komunikasi data. Pada arsitektur REST, REST server menyediakan resources (sumber daya/data) dan REST client mengakses dan menampilkan resource tersebut untuk penggunaan selanjutnya. Setiap resource diidentifikasi oleh URIs (Universal Resource Identifiers) atau global ID. Resource tersebut direpresentasikan dalam bentuk format teks, JSON atau XML.

 

Mari kita praktikan:

1. Buat Script dengan nama getStatusEmail.php dan simpan di directory XAMPP atau apache yg anda gunakan dan Run Apachenya. di script ada commant silahkan Anda pelajari script saya ini. :v

//Get Request untuk dari JSON rubah dahulu, disini tidak perlu api Key Dll karena takde auth

$request = (arrayjson_decode(file_get_contents(‘php://input’), TRUE);

//Function untuk Check email Domain apakah sudah terdaftar atau disebut dengan Mx Record.

function mxrecordValidate($email, $domain){

    $arr = dns_get_record($domain, DNS_MX);

    if(isset($arr[0]) && $arr[0][‘host’] == $domain && !empty($arr[0][‘target’])){

        return $arr[0][“target”];

    }

}

// Check GET Request sudah benar atau belum

if(isset($request[“resource”])){

    //Kita pecah dalam bentuk Array

    foreach($request[“resource”] as $k=>$item){

        //identifikasi Email

        $email =$request[“resource”][$k][“email”];

        //pecah domain dan email name

        $domain = substr(strrchr($email“@”),1);

        //proses apakah email Valid atau Invalid dengan menjalankan fungsi mxrecordValidate.

        if(mxrecordValidate($email$domain)){

            //check dns Record

            $data = dns_get_record($domain, DNS_MX);

            //masukan hasil ke Response

            foreach($data as $key1){

                $response[“resource”][$k][“host”]=$key1[‘host’] ;

                $response[“resource”][$k][“class”]=$key1[‘class’] ;

                $response[“resource”][$k][“ttl”]=$key1[‘ttl’] ;

                $response[“resource”][$k][“type”]=$key1[‘type’] ;

                $response[“resource”][$k][“pri”]=$key1[‘pri’] ;

                $response[“resource”][$k][“target”]=$key1[‘target’] ;

                $response[“resource”][$k][“target”]=gethostbyname($key1[‘target’]) ;

            }

            //Status untuk Valid

            $response[“resource”][$k][“email”] = $request[“resource”][$k][“email”];

            $response[“resource”][$k][“status”] = ‘Valid Email’;

        } else {

            //Status untuk Invalid

            $response[“resource”][$k][“email”] = $request[“resource”][$k][“email”];

            $response[“resource”][$k][“status”] = ‘Invalid Email’;

        }

    }

else {

    //Berikan Error untuk orang yang input sembarangan, dengan status 500 Internal Server 

Error.

    header(‘HTTP/1.1 500 Internal Server Error’);

    //Response untuk Error.

    $response[“message”] = “Error fix your Brain.”;

}

 

header(‘Content-Type: application/json’);

$json_string = json_encode($response, JSON_PRETTY_PRINT);

die($json_string);

?>

2.   Testing Setelah itu silakan menggunakan POSTMAN atau sebagai REST Client Lain yang familiar bagi Anda.

  • Pilih Method POST, input path http://localhost/Email%20Checker/getStatusEmail.php . Pakai header Content-Type => application/json.

    Cara menggunakan gethostbyname php

  • Masukan Body Request atau email yang akan kita cek, jangan lupa pakai Body Request JSON.
    Cara menggunakan gethostbyname php
  • Berikut Respon atau hasil dari Email Checker.
    Cara menggunakan gethostbyname php

Untuk Code silakan clone Git Repository: https://gitlab.com/Sendok/php-native-rest-api-email-checker.git

NOTE: untuk Real Email Checker ini kemungkinan berhasil tidaklah Persen. Dikarenakan ini hanya akan check email Checker, untuk kemungkinan 100 Persennya masih dalam riset (selama ini masih harus PING domain dan harus ada allow dari host, apabila tidak ada allow maka akan failed berarti masih belum 100%).  Mungkin untuk Next Artikel bisa coba untuk PING Email menggunakan PHP.