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ắnTậ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:
- 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
- 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}'
vì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 - Sau khi hoàn tất, sử dụng Ctrl + O và Ctrl + X để lưu và thoát tệp tương ứng.
- 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.comTương tự, để phân giải địa chỉ IP của yahoo.com, lệnh sẽ là:
$./iplookup.sh yahoo.comĐó 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.