ใช้ Linux ping ใน Cygwin


8

ฉันต้องการทำงานกับสคริปต์ที่ใช้pingคำสั่งกับไวยากรณ์ Linux ทั่วไปไม่ใช่แพ็คเกจเริ่มต้นของ Cygwin หรือยูทิลิตี้ ping ของ Windows จะทำงานได้ สำหรับตอนนี้ฉันได้ทำการแก้ไขสคริปต์เพื่อใช้เวอร์ชัน Windows (ด้วยความยากลำบากตัวปฏิบัติการ Windows ไม่ได้ให้รหัสส่งคืนที่มีประโยชน์ ความเข้ากันได้ของกล่องและคุณสมบัติเพิ่มเติมของ ping Linux ก่อนที่ฉันจะทำอะไรเพิ่มเติมขอให้ฉันบอกว่าฉันใช้ Cygwin ในโหมดผู้ดูแลระบบ; ไม่ใช่ปัญหาสิทธิ์ มันเป็นปัญหาของรุ่น

pingคำสั่งเริ่มต้นของ Cygwin ถูกระบุว่าเป็นรุ่น '1.0-1' ในเครื่องมือจัดการการตั้งค่าในแพคเกจ 'ping: เครื่องมือเครือข่ายพื้นฐานเพื่อทดสอบการเชื่อมต่อเครือข่าย IP' ไม่มีข้อโต้แย้งมันส่งออก:

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

และคำอธิบาย man page เริ่มต้นด้วย"The DARPA Internet เป็นการรวมฮาร์ดแวร์เครือข่ายขนาดใหญ่และซับซ้อน"ซึ่งอ่านได้ช้ากว่าเล็กน้อยสำหรับฉัน นี่เป็นรุ่นที่ติดตั้ง/bin/pingมา

pingคำสั่งของ Windows ตั้งอยู่ที่$SYSTEMROOT/system32/pingและส่งออกข้อความต่อไปนี้เมื่อเรียกใช้โดยไม่มีพารามิเตอร์

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

นี่เป็น ping ที่เต็มไปด้วยฟีเจอร์มากมาย (โดยเฉพาะอย่างยิ่งมันรวมถึงการหมดเวลาซึ่งสำคัญสำหรับฉัน) แต่มันไม่ใช่เวอร์ชันที่มีอยู่ในการติดตั้ง Linux ที่ทันสมัย:

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

เอกสารออนไลน์ที่นี่ ฉันดูเหมือนจะไม่พบการอ้างอิงถึง ping รุ่น cygwin ยกเว้นในการอ้างอิงถึง Cygwin

ฉันพบกระทู้อีเมลโบราณซึ่งอธิบาย Cygwin รุ่นแรกโดยไม่ใช้ ping ฉันไม่พบ iputils รุ่นใดที่ออกแบบมาสำหรับ Windows

คำตอบ:


3

คุณสามารถทำได้

  • พยายามที่จะสร้างปิงจากแหล่งที่มามันเป็นส่วนหนึ่งของแพคเกจ iputils แต่การสร้างสิ่งต่าง ๆ บน cygwin นั้นค่อนข้างยุ่งยาก

หรือ (และฉันจะลองก่อน)


ขอบคุณดูเหมือนว่าตัวเลือกแรกจะทำงานได้ดีขึ้นสำหรับฉันเนื่องจากหนึ่งในข้อกำหนดที่ต้องการคือมีไวยากรณ์ของเวอร์ชัน iputils ดังนั้นการลองใช้ ping อื่นจะไม่ช่วยได้ ที่กล่าวว่าฉันสงสัยว่าฉันเป็นคนแรกที่ได้ทำงานในเรื่องนี้ดังนั้นฉันจะรอในกรณีที่มีคนลองแล้ว
Kevin Vermeer

ถึงกระนั้น iputils ยังไม่ได้เปิดตัวแท็กในเกือบสองปีที่ผ่านมา แต่มีการพัฒนาเพื่อสนับสนุน IPv6 ในพื้นที่เก็บข้อมูล git ของพวกเขาซึ่งหายากเล็กน้อย แต่ตั้งอยู่ที่ `git: //git.linux- ipv6.org / gitroot / iputils.git` หวังว่าจะช่วยใครซักคน ฉันจะโพสต์แพทช์ไปที่เมื่อฉันทำกับสิ่งนี้มีงานที่ต้องทำ แต่มันดูไม่ผ่านไม่ได้
Kevin Vermeer

1
หากคุณไปทุกที่ด้วยการสร้าง iputils สำหรับ Cygwin ฉันสงสัยอย่างยิ่งว่าชุมชน Cygwin ที่เหลือจะชอบที่จะไปที่นั่นเช่นกัน
me_and

@me_and - ฉันจะปล่อยแน่นอนถ้าฉันประสบความสำเร็จ อย่างไรก็ตามในขณะที่ไฟล์ไม่กี่ครั้งแรกที่รวบรวมได้ดีโดยเพียงแค่การเปลี่ยน#include <linux/filename.h>ไป#include <cygwin/filename.h>และชอบผมมาพบว่าไดรเวอร์ซ็อกเก็ต Cygwin ยังขาดคุณสมบัติที่จำเป็นโดย iputils มันไม่ได้เป็นเพียงเรื่องของการสร้าง iputils สำหรับ Cygwin แต่ยังเป็นเรื่องของการสร้าง Cygwin เพื่อทำงานกับ iputils ฉันจะให้มันไปในภายหลังถ้าฉันมีเวลาว่าง
Kevin Vermeer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.