Sử dụng ping Linux trong Cygwin


8

Tôi cần phải làm việc với một tập lệnh sử dụng pinglệnh với cú pháp Linux thông thường của nó, cả gói mặc định của Cygwin hoặc tiện ích ping Windows sẽ không hoạt động. Hiện tại, tôi đã vá tập lệnh để sử dụng phiên bản Windows (gặp một số khó khăn; tập tin thực thi Windows không cung cấp mã trả về hữu ích nên tôi phải phân tích cú pháp đầu ra), nhưng tôi thích phần ngoài khả năng tương thích hộp và các tính năng bổ sung của ping Linux. Trước khi tôi nhận được thêm, hãy để tôi nói rằng tôi đang chạy Cygwin trong chế độ quản trị viên; Đó không phải là một vấn đề đặc quyền. Đây là một vấn đề phiên bản.

pingLệnh mặc định của Cygwin được liệt kê là phiên bản '1.0-1' trong trình quản lý thiết lập, trong gói 'ping: một công cụ mạng cơ bản để kiểm tra kết nối mạng IP'. Không có đối số, nó xuất ra:

Usage:  ping [-dfqrv] host [packetsize [count [preload]]]

và mô tả trang man bắt đầu bằng "Internet DARPA là một tập hợp lớn và phức tạp của phần cứng mạng" , nó đọc nhiều hơn một chút lỗi thời đối với tôi. Đây là phiên bản được cài đặt trong /bin/ping.

pingLệnh của Windows được đặt tại $SYSTEMROOT/system32/pingvà xuất ra thông báo sau khi gọi mà không có tham số.

Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
        [-r count] [-s count] [[-j host-list] | [-k host-list]]
        [-w timeout] target_name

Đây chắc chắn là một ping giàu tính năng hơn (đáng chú ý là nó bao gồm cả thời gian chờ, rất quan trọng đối với tôi), nhưng nó không phải là phiên bản có sẵn trên bản cài đặt Linux hiện đại:

ping [ -LRUbdfnqrvVaAB] [ -c count] [ -i interval] [ -l preload] [ -p pattern] 
     [ -s packetsize] [ -t ttl] [ -w deadline] [ -F flowlabel] [ -I interface] 
     [ -M hint] [ -Q tos] [ -S sndbuf] [ -T timestamp option] [ -W timeout] 
     [ hop ...] destination

tài liệu trực tuyến ở đây . Tôi dường như không thể tìm thấy tài liệu tham khảo cho phiên bản ping của cygwin ngoại trừ tham chiếu đến Cygwin.

Tôi tìm thấy chuỗi email cổ này mô tả một phiên bản đầu tiên của Cygwin mà không cần ping. Tôi chưa tìm thấy bất kỳ phiên bản iputils nào được thiết kế cho Windows.

Câu trả lời:


3

Bạn có thể

  • hãy thử xây dựng ping từ nguồn, nó là một phần của gói iputils . Nhưng việc xây dựng các công cụ trên cygwin có thể khá rắc rối.

Hoặc (và tôi sẽ thử cái này trước)


Cảm ơn, có vẻ như tùy chọn đầu tiên sẽ hoạt động tốt hơn đối với tôi vì một trong những yêu cầu mong muốn là nó có cú pháp của phiên bản iputils, vì vậy, việc thử một triển khai ping khác sẽ không có ích. Điều đó nói rằng, tôi nghi ngờ rằng tôi là người đầu tiên gặp phải vấn đề này nên tôi sẽ chờ trong trường hợp ai đó đã thử nó.
Kevin Vermeer

Nhân tiện, iputils đã không phát hành thẻ được gắn thẻ trong gần hai năm, nhưng đã có một số phát triển để hỗ trợ IPv6 trong kho git của họ, một thứ hơi khó tìm nhưng nằm ở `git: //git.linux- ipv6.org / gitroot / iputils.git`. Hy vọng rằng sẽ giúp được ai đó. Tôi sẽ đăng bản vá đến khi tôi hoàn thành việc này, sẽ có một số việc phải làm nhưng nó dường như không thể vượt qua.
Kevin Vermeer

1
Nếu bạn đến bất cứ nơi nào có thể xây dựng iputils cho Cygwin, tôi hoàn toàn nghi ngờ phần còn lại của cộng đồng Cygwin cũng thích có được nó.
me_ và

@me_and - Tôi chắc chắn sẽ phát hành nó nếu tôi thành công. Tuy nhiên, trong khi một vài tệp đầu tiên được biên dịch tốt chỉ bằng cách thay đổi #include <linux/filename.h>thành #include <cygwin/filename.h>tương tự, thì sau đó tôi thấy rằng trình điều khiển ổ cắm Cygwin cũng thiếu các tính năng cần thiết của iputils. Đây không chỉ là vấn đề xây dựng iputils cho Cygwin, mà còn là vấn đề xây dựng Cygwin để làm việc với iputils. Tôi sẽ cho nó đi sau nếu tôi có thời gian rảnh.
Kevin Vermeer
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.