Có thể gửi ip kết nối từ xa qua netcat?


8

Trên thực tế tôi muốn làm một cái gì đó như chức năng ifconfig.me nhưng chỉ cho mạng nội bộ của tôi. Tôi thấy nó theo cách một cái gì đó trên máy chủ lắng nghe một số cổng và gửi ip của máy từ xa được kết nối.

Có vẻ như nclà một tiện ích tuyệt vời cho vấn đề của tôi (tôi cũng không có bất kỳ php / python / bất cứ thứ gì trên máy chủ. Chỉ có các công cụ unix tiêu chuẩn và shell).

Tôi có thể thấy tên ip và dns từ xa nếu tôi khởi chạy nc -vvvà kết nối với nó từ hệ thống từ xa, nhưng tôi không thể tìm cách gửi chúng đến máy chủ từ xa.

Hoặc có thể tôi đã chọn con đường quá lạ và có một giải pháp đơn giản hơn?

Câu trả lời:


8

Bạn có thể sử dụng một cái gì đó như thế này:

while true; do nc -lvp 1337 -c "echo -n 'Your IP is: '; grep connect my.ip | cut -d'[' -f 3 | cut -d']' -f 1" 2> my.ip; done

ncsẽ được thực hiện trong vòng nghe vô tận trên cổng 1337với tùy chọn dài dòng sẽ ghi thông tin về máy chủ từ xa tới stderr. stderrđược chuyển hướng đến tập tin my.ip. Tùy chọn -ccho ncphép thực thi một cái gì đó để "xử lý" kết nối. Trong trường hợp này, chúng tôi sẽ grep tiếp theo cho địa chỉ IP từ my.iptệp.

pbm@lantea:~$ curl http://tauri:1337
Your IP is: 192.168.0.100

Chỉ là wow! Không bao giờ nghĩ rằng có thể chuyển hướng đầu ra đến tập tin và đọc nó trong thực thi lệnh. Cảm ơn rât nhiều.
vội vàng

0
while true; do nc -l -v 3333 2> status | while read msg; do ip=$(cat status | grep -o -P '(?<=from).*(?=port)') && notify-send "$ip" "$msg" -i gtk-network; done ; done

Chuyển hướng stderr đến một tệp gọi là trạng thái ; sau đó nó đọc ip của trình kết nối từ xa từ tệp; cuối cùng hiển thị ip trong thông báo osd.

ảnh chụp màn hình kết nối từ xa nc


Lưu ý: khi ai đó kết nối vào cổng tương tự từ một máy tính khác nc gerneally đặt này để stderr: connection from 10.10.0.1 port 3333 [tcp/*] accepted. Tôi chỉ cần trích xuất địa chỉ IP bằng grep .

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.