Làm cách nào để tìm giao diện mạng đang hoạt động từ userland?


1

Tôi biết rằng tôi có thể tìm thấy giao diện mạng nào hiện đang được sử dụng bằng cách phân tích cú pháp đầu ra của:

# ifconfig

hoặc là

# route

Nhưng làm thế nào tôi có thể nhận được thông tin này với tư cách là người dùng không root? Có cách nào tôi có thể xây dựng một

$ magic-command

ouput của ai sẽ none lohoặc wlan0hoặc eth0tùy thuộc vào thiết bị được sử dụng .. hoặc thậm chí enp3s0f1hoặc wlp2s0trên các hệ thống kỳ lạ, không có quyền quản trị viên?


1
Bạn có ý nghĩa gì với những giao diện mạng nào? Nếu có nhiều hơn một thì sao? Bạn có muốn một tuyến đường mặc định nếu có? ifconfigroutekhông yêu cầu bất kỳ đặc quyền nào (ít nhất là không có trên Linux, bạn đang sử dụng biến thể Unix nào?).
Gilles

Câu trả lời:


6

Một cái gì đó như thế này?

ip addr | awk '/state UP/ {print $2}'
enp0s3:

Lệnh này đã được ban hành dưới dạng người dùng "thông thường" (không phải root) trên:

uname -a
Linux centos 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Nếu điều quan trọng là xóa dấu vết :khỏi tên giao diện, hãy sử dụng (ví dụ):

ip addr | awk '/state UP/ {print $2}' | sed 's/.$//'
enp0s3

Hoàn hảo, chúc mừng :)
iago-lito 23/2/2017
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.