Làm thế nào tôi có thể nhận được đầu ra và kiểm tra lệnh đào?


7

Khi chúng ta gõ lệnh "dig + short www.example.com", chúng ta sẽ nhận được một cái gì đó như thế:

www.example.com.
192.168.1.1
192.168.1.2
192.168.1.3

Tôi muốn lấy địa chỉ đầu tiên và kiểm tra nếu đó là địa chỉ tôi muốn (192.168.1.1)

Làm cách nào tôi có thể nhận được đầu ra của lệnh này, đặc biệt là dòng thứ hai bằng cách sử dụng shell script?

Câu trả lời:


7

Một cái gì đó như thế này sẽ làm:

$ dig +short www.google.com | head -1
74.125.225.113

Nhưng hãy cẩn thận vì hầu hết các máy chủ có nhiều địa chỉ IP sẽ thực hiện một số hình thức cướp vòng ở cấp DNS để danh sách thường xoay vòng mỗi khi bạn chạy diglệnh:

$ dig +short www.google.com
74.125.225.116
74.125.225.112
74.125.225.113
74.125.225.114
74.125.225.115

$ dig +short www.google.com
74.125.225.115
74.125.225.116
74.125.225.112
74.125.225.113
74.125.225.114

$ dig +short www.google.com 
74.125.225.114
74.125.225.115
74.125.225.116
74.125.225.112
74.125.225.113

Lưu ý cách các IP di chuyển xung quanh từ truy vấn sang truy vấn? Điều này được thực hiện để cân bằng tải trên các máy chủ đó.

Bắt IP thành một biến

Lệnh sau sẽ nắm bắt đầu ra của địa chỉ IP và đặt nó vào một biến shell.

$ IP=$(dig +short www.google.com | head -1)

Bạn có thể xác nhận điều này như vậy:

$ echo $IP
74.125.225.114

nhưng làm thế nào tôi có thể đặt nó trong một biến
Nidal

@ user2683768 - xem cập nhật.
slm

3

Bạn đi đây

dig +short  www.example.com | sed -n '2{p;q}'

-nngăn không cho sed in đầu vào của nó theo mặc định. 2làm cho nó thực thi p;qtrên dòng số 2. plà viết tắt của in và qthoát


bạn có thể giải thích cho tôi ngắn gọn @ 1_CR
Nidal

Cái này in dòng cuối cùng, không? echo -e "hi1\nhi2"| sed -n '2{p;q}'mang lại cho tôi hi2.
slm

@slm cảm ơn đã chỉnh sửa. Giải thích thêm.
iruvar

Tôi nghĩ rằng nếu bạn thay đổi nó từ 2 thành 1, bạn sẽ có được dòng đầu tiên.
slm

1
Vâng, thật đáng sợ khi chúng ta không biết nhiều, phải không.
slm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.