Làm cách nào để phân giải tên máy chủ thành địa chỉ IP trong tập lệnh Bash?

How Can I Resolve Hostname An Ip Address Bash Script



Mọi hệ thống trong mạng TCP / IP được gán một mã định danh duy nhất được gọi là địa chỉ IP giúp kết nối nó với hệ thống khác trên mạng và trên toàn internet. Tất cả các trang web bạn truy cập trên internet cũng có địa chỉ IP duy nhất. Vì mọi người khó nhớ địa chỉ IP của các trang web này, hệ thống DNS đi kèm giúp dịch các địa chỉ IP khó nhớ này thành tên mà con người có thể đọc được. Với DNS, bạn không còn phải nhớ địa chỉ IP. Thay vào đó, bạn chỉ cần nhớ tên miền là xong. Trên thực tế, trên máy chủ được hỗ trợ, máy chủ DNS lấy tên máy chủ và phân giải nó thành địa chỉ IP mà trình duyệt hoặc ứng dụng sau đó kết nối với.

Trong bài viết này, chúng tôi sẽ giải thích cách phân giải tên máy chủ / tên miền thành địa chỉ IPv4 và IPv6 trong tập lệnh Bash. Tuy nhiên, trước khi tiếp tục tạo tập lệnh, chúng ta hãy xem lại một số lệnh có thể được sử dụng để phân giải tên máy chủ / tên miền thành địa chỉ IP.







Ping

Ping là công cụ đơn giản nhất và được tích hợp sẵn trên hầu hết các hệ điều hành. Nó được sử dụng để xác minh khả năng kết nối lại của một máy chủ trong mạng. Tuy nhiên, chúng tôi cũng có thể sử dụng nó để tìm địa chỉ IP dựa trên bất kỳ tên máy / tên miền nào. Sử dụng cú pháp sau để tìm địa chỉ IP của tên máy chủ / tên miền được nhắm mục tiêu:



$pingmáy chủ đích



Nslookup

Nslookup được sử dụng rộng rãi để phân giải tên máy chủ thành địa chỉ IP. Để sử dụng lệnh này cho tra cứu IP, hãy sử dụng cú pháp sau:





$nslookup target-host

Tổ chức

Một máy chủ tiện ích dòng lệnh khác có thể được sử dụng để tìm địa chỉ IP dựa trên bất kỳ tên máy chủ / tên miền nào. Để sử dụng lệnh này, hãy sử dụng cú pháp sau:



$host target-host

Bạn

Dig là một công cụ dòng lệnh hữu ích khác được sử dụng để truy vấn các bản ghi liên quan đến DNS khác nhau. Nó có thể được sử dụng để tìm địa chỉ IP so với bất kỳ tên máy chủ / tên miền nào. Sử dụng lệnh Dig theo cách sau để tìm địa chỉ IP so với tên máy chủ / tên miền cụ thể.

$bạntarget-host + ngắn

Tập lệnh Bash để phân giải tên máy chủ thành địa chỉ IP

Để sử dụng tập lệnh bash cho tra cứu IP, hãy làm theo các bước sau:

  1. Tạo tệp bash bằng bất kỳ trình soạn thảo văn bản nào. Ở đây tôi sẽ sử dụng trình soạn thảo Nano để tạo một tập lệnh có tên iplookup.sh .$sudo nanoscript.sh
  1. Sao chép-dán các dòng sau vào tệp tập lệnh của bạn. Lưu ý rằng, ở đây trong tập lệnh này, tôi chỉ định máy chủ DNS công cộng của Google để tra cứu IP. Bạn có thể chỉ định bất kỳ máy chủ DNS nào khác tùy theo môi trường của bạn.# Chỉ định máy chủ DNS
    máy chủ DNS='8.8.8.8'
    # chức năng lấy địa chỉ IP
    hàm sốget_ipaddr{
    địa chỉ IP=''
    Bản ghi # A và AAA tương ứng cho IPv4 và IPv6
    # $ 1 là viết tắt của đối số đầu tiên
    nếu như [ -n '$ 1' ];sau đó
    tên máy chủ='$ {1}'
    nếu như [ -Với 'query_type' ];sau đó
    query_type='ĐẾN'
    thì là ở
    # sử dụng lệnh máy chủ cho các hoạt động tra cứu DNS
    tổ chức-NS $ {query_type} $ {tên máy chủ} &> /nhà phát triển/vô giá trị$ {dnsserver}
    nếu như [ '$?' -eq '0' ];sau đó
    # lấy địa chỉ ip
    địa chỉ IP='$ (host -t $ {query_type} $ {hostname} $ {dnsserver} | awk '/has.*address/{print $ NF; exit}')'
    khác
    lối ra 1
    thì là ở
    khác
    lối ra 2
    thì là ở
    # hiển thị ip
    quăng đi $ ip_address
    }
    tên máy chủ='$ {1}'
    truy vấntrong 'A-IPv4' 'AAAA-IPv6';làm
    query_type='$ (printf $ query | cut -d- -f 1)'
    ipversion='$ (printf $ query | cut -d- -f 2)'
    Địa chỉ='$ (get_ipaddr $ {hostname})'
    nếu như [ '$?' -eq '0' ];sau đó
    nếu như [ -n '$ {địa chỉ}' ];sau đó
    quăng đi 'Các$ {ipversion}địa chỉ của Tên máy chủ$ {tên máy chủ}Là:địa chỉ $'
    thì là ở
    khác
    quăng đi 'Đã xảy ra lỗi'
    thì là ở
    xong
  2. Sau khi hoàn tất, sử dụng Ctrl + O và Ctrl + X để lưu và thoát tệp tương ứng.
  3. Bây giờ để tìm địa chỉ IP so với tên máy chủ / tên miền được nhắm mục tiêu, hãy chạy tập lệnh bằng cú pháp sau:$./script.sh target-host

    Ví dụ: để phân giải địa chỉ IP của google.com, lệnh sẽ là:

    $./iplookup.sh google.com

    Đầu ra sẽ tương tự như sau:

    Tương tự, để phân giải địa chỉ IP của yahoo.com, lệnh sẽ là:

    $./iplookup.sh yahoo.com

    Đầu ra sẽ tương tự như sau:

    Đó là tất cả để có nó! Trong bài viết này, chúng ta đã tìm hiểu cách phân giải tên máy chủ thành địa chỉ IPv4 và IPv6 bằng cách sử dụng tập lệnh bash. Chúng tôi cũng đã tìm hiểu một số công cụ dòng lệnh khác như Ping, Nslookup, Host và Dig có thể được sử dụng để thực hiện tra cứu IP.