Cara Scan Sub Domain Dengan Python

Domain merupakan salah satu hal penting dalam dunia website karena domain di gunakan untuk mempermudah kita mencari sebuah website. Domain di ibaratkan sebuah alamat karena jika kita mempunyai alamat maka akan mudah untuk menemukan nya. Contoh bentuk domain :

https://id.wikipedia.org

Di atas merupakan domain wikipedia. Protokol HTTP (Hyper Text Transfer Protocol) di gunakan untuk melakukan transfer atau pengiriman data pada server dan client. Katakanlah kamu ingin mengunjungi website facebook maka protokol HTTP akan mencari data ke web server sesuai requests dari si client jika requests tersebut ada dalam web server maka data facebook seperti gambar atau teks akan di tampilkan ke halaman web kamu sebagai si client. Jika tidak ada, HTTP akan mengirimkan sesuatu pada halaman web ke client berupa pesan 404 not found.

HTTPS (Hyper text Transfer Protocol Secure) di mana ini sama cara kerja nya seperti HTTP namun ini ada kata secure karena ini bisa di bilang aman untuk melakukan transfer data karena data yang di kirimkan akan di enkripsi. Website yang memiliki data sensitif wajib menggunakan HTTPS dan jika kamu punya sebuah website toko online yang di bangun dengan menggunakan bahasa pemrograman PHP misalnya, pastikan web kamu harus memiliki HTTPS agar pengguna merasa aman dan juga meningkatkan pengalaman pengguna.

Kembali pada domain, domain ini akan mempermudah kita mencari alamat situs. Katakanlah kamu ingin mengunjungi website bukalapak maka di belakang nya pasti ada sebuah ip. Contoh saja ip nya adalah 98.175.31.195 jika tanpa domain tentu saja kita harus mengingat ip tersebut untuk mengunjungi website bukalapak. Hal tersebut jelas sangat susah untuk di hafal karena nya sebuah website pasti punya berbeda beda ip. Nah, dengan domain kita hanya mengingat nya saja. Contoh lagi domain instagram seperti ini :

https://www.instagram.com

Di belakang nya pasti ada sebuah ip karena ip (internet protocol) di gunakan buat berkomunikasi dengan perangkat lain dan sebagai identitas jaringan kita.

Sub Domain

Jadi apa itu sub domain? sub domain ini bagian dari domain tersendiri. Jadi gini, jika kamu mempunyai sebuah website ber domain :

https://www.websiteku.com

Maka kamu bisa mempunyai sub domain. Bingung? jadi kita pelajari dulu dikit mengenai konsep URL. Konsep URL menurut wikipedia yang juga dikenal dengan uniform resource locator (URL) adalah rangkaian karakter menurut suatu format standar tertentu, yang digunakan untuk menunjukkan alamat suatu sumber seperti dokumen dan gambar di internet. Dan ini penulis jabarkan memiliki empat kategori :

  1. Protocol : Ini mengacu pada http atau https.
  2. Sub Domain : Sub domain ini bagian dari www tersebut.
  3. Second Level Domain : Ini bagian pada nama domain. Nah, coba kamu lihat domain di bawah ini :
  4. www.instagram.com

    Instagram merupakan dari bagian second level domain.

  5. Third Level Domain : Pada kata com tersebut bagian dari third level domain.

Jika kita mempunyai sub domain maka kita bisa membuat beberapa website pada domain utama. Ibarat nya sub domain itu anak atau turunan dari orang tua. Sub domain ada banyak bukan hanya www saja tapi kamu bisa lihat sub domain seperti ini :

mail
mail2
www
ns2
ns1
blog
localhost
m
ftp
mobile
ns3
smtp
search
api
dev
secure
webmail
admin
img
news
sms
marketing
test
video
www2
media
static
ads
mail2
beta
wap
blogs
download
dns1
www3
origin
shop
forum
chat
www1
image
new
tv
dns
services
music
images
pay
ddrint
conc

Pada artikel ini sesuai judul kita akan belajar cara scanner sub domain dengan python. Dan kita akan menggunakan modul requests.

Tutorial

  1. Pertama install dulu modul requests lewat terminal kamu. Ketik di bawah ini :
  2. pip install requests
  3. Buat folder bernama scanner-python buat mempermudah tutorial kita.
  4. Buka teks editor bisa notepad++ atau lainnya.
  5. Buat file python dengan nama main.py dan simpan pada folder scanner-python tadi. Untuk kode nya bisa lihat di bawah ini :
  6. # impor modul
    import requests
    # function untuk melakukan scanning subdomains
    def domain_scanner(nama_domain,sub_domain):
        print('-----------Scanner Di Mulai-----------')
        
        # looping untuk mendapatkan URL
        for subdomain in sub_domain:
            
            # buat url untuk menaruh subdomain satu demi satu
            url = f"https://{subdomain}.{nama_domain}"
            
            # gunakan try catch block untuk menangkap kesalahan program
            try:
                
                # mendapatkan url
                requests.get(url)
                
                  # cetak sub domain
                print(f'[+] {url}')
                
            # cek jika koneksi error
            except requests.ConnectionError:
                pass
    # function utama
    if __name__ == '__main__':
        
        # tanya domain
        nama_domain = input("Masukkan nama domain:")
        print('n')
        # buka file txt
        with open('file.txt','r') as file:
            
            # baca file.txt
            baca_file = file.read()
            
           # menggunakan fungsi spilitlines() untuk membaca file.txt sampai bawah
            sub_dom = baca_file.splitlines()
            
        # panggil fungsi nya untuk melakukan scanner subdomain
        domain_scanner(nama_domain,sub_dom)

    Jika kamu masih bingung kode di atas walaupun sudah di beri komentar tenang saja penulis akan mudahkan cara kerja kode nya. Kamu lihat pada kode :

    # impor modul
    import requests

    Di atas untuk melakukan impor modul requests. Pada bagian kode :

    # function untuk melakukan scanning subdomains
    def domain_scanner(nama_domain,sub_domain):
        print('-----------Scanner Di Mulai-----------')
        
        # looping untuk mendapatkan URL
        for subdomain in sub_domain:
            
            # buat url untuk menaruh subdomain satu demi satu
            url = f"https://{subdomain}.{nama_domain}"
            
            # gunakan try catch block untuk menangkap kesalahan program
            try:
                
                # mendapatkan url
                requests.get(url)
                
                  # cetak sub domain
                print(f'[+] {url}')
                
            # cek jika koneksi error
            except requests.ConnectionError:
                pass

    Kita telah membuat fungsi bernama domain_scanner di mana di dalamnya terdapat perulangan untuk looping hasil sub domain nya nanti ke terminal. Nah, pada variabel url kita harus menyiapkan url nya nanti untuk menaruh dan mengolah data sub domain untuk di tampilkan ke terminal satu demi satu. Pada try kita akan melakukan kebenaran program, jika permintaan nya berhasil dapatkan url lalu cetak ke terminal dan except requests.ConnectionError kita akan tangkap error jika terdapat koneksi error yang terjadi.

    Pada kode :

    # function utama
    if __name__ == '__main__':
        
        # tanya domain
        nama_domain = input("Masukkan nama domain:")
        print('n')
        # buka file txt
        with open('file.txt','r') as file:
            
            # baca file.txt
            baca_file = file.read()
            
           # menggunakan fungsi spilitlines() untuk membaca file.txt sampai bawah
            sub_dom = baca_file.splitlines()
            
        # panggil fungsi nya untuk melakukan scanner subdomain
        domain_scanner(nama_domain,sub_dom)

    Pada pengkondisian di buat di maksud kan untuk menjalankan file nya pada terminal. Lalu variabel nama_domain untuk memasukkan nama domain nya nanti. Pada kode with open(‘file.txt’,’r’) as file: di maksud kan untuk membuka file.txt untuk file.txt isi nya seperti ini :

    mail
    mail2
    www
    ns2
    ns1
    blog
    localhost
    m
    ftp
    mobile
    ns3
    smtp
    search
    api
    dev
    secure
    webmail
    admin
    img
    news
    sms
    marketing
    test
    video
    www2
    media
    static
    ads
    mail2
    beta
    wap
    blogs
    download
    dns1
    www3
    origin
    shop
    forum
    chat
    www1
    image
    new
    tv
    dns
    services
    music
    images
    pay
    ddrint
    conc

    Kamu harus simpan pada folder scanner-python tadi yah. Simpan dengan nama file.txt jangan lupa. Pada kode selanjutnya :

    # baca file.txt
    baca_file = file.read()
            
    # menggunakan fungsi spilitlines() untuk membaca file.txt sampai bawah
    sub_dom = baca_file.splitlines()
    # panggil fungsi nya untuk melakukan scanner subdomain
    domain_scanner(nama_domain,sub_dom)

    Di mana pada variabel baca_file untuk membaca file.txt dan variabel sub_dom untuk membaca isi data file.txt sampai ke bawah. Lalu kita memanggil fungsi nya bernama domain_scanner.

  7. Hasil ketika kita menjalankan file python tadi pada folder scanner-python lewat terminal :
  8. Selesai.

AKHIR KATA

Dengan sub domain kita bisa membuat beberapa website tertentu dan juga bisa menghemat uang kamu ketika kamu ingin membuat website lain pada domain utama yang di miliki. Misalkan kamu ingin membuat website lain seperti website blog maka gunakan sub domain blog.