Tôi có một tình huống thú vị trên tay, và tôi không hoàn toàn chắc chắn làm thế nào để đi về xử lý sự cố nó. Tôi đã làm một vài tìm kiếm cho một cái gì đó tương tự như tình hình của tôi, nhưng không có gì hoàn toàn phù hợp với nó. Nếu câu trả lời đã tồn tại ở đâu đó ở đây, tôi sẽ đánh giá cao bất cứ ai có thể chỉ cho tôi đi đúng hướng.Điều gì sẽ khiến ICMPsendEcho thất bại khi ping.exe thành công
Ok, cho vấn đề.
Tôi đang viết ứng dụng cơ quan giám sát để theo dõi kết nối internet. Nó được thiết kế để ping một tập hợp các tên miền tại một khoảng thời gian đã định và khi bất kỳ người nào trong số họ trả lời ping, bộ đếm thời gian trạng thái được đặt lại. Nếu bộ đếm thời gian trạng thái vượt quá ngưỡng đã đặt, một số giai đoạn của hành động khắc phục được cố gắng khắc phục sự cố.
Đủ đơn giản phải không?
Đây là nơi thật lạ.
Tôi đang sử dụng ICMPsendecho để đưa ra yêu cầu ping. Trên môi trường phát triển của tôi (win7) nó có vẻ làm việc tốt, thử nghiệm và mọi thứ diễn ra suôn sẻ. Tuy nhiên, trong môi trường mà nó đang được triển khai, nó không nhận được phản hồi. Môi trường triển khai là một máy tính Windows XP sp3.
Trong suốt quá trình xử lý sự cố, tôi đã lưu ý một số điều, có thể có hoặc không hữu ích khi thực sự cố giải quyết vấn đề này.
windows ping.exe hoạt động tốt trên môi trường triển khai cho tất cả các miền tôi đang sử dụng để kiểm tra trạng thái kết nối, chỉ các cuộc gọi ICMPsendecho của tôi dường như không tạo ra phản hồi.
Tôi đã cài đặt wireshark trên môi trường triển khai và tôi có thể thấy các gói đang phát hành thành công cho các yêu cầu trên cả hai loại ping. các cửa sổ ping tạo ra các gói yêu cầu với chiều dài 74 byte, và các chương trình của tôi gọi tạo ra các gói có độ dài 42 byte. Các gói phản hồi của Windows tương tự 74 byte khi chúng được nhận.
Chuyển sang môi trường phát triển trong một phút, với cài đặt Wireshark. Windows ping tạo ra một tình huống tương tự như trong môi trường triển khai với các gói. Tuy nhiên, ứng dụng của tôi, khi nó tạo ra các yêu cầu các gói có chiều dài 42 byte (giống như môi trường triển khai), nhưng các phản hồi mà nó nhận được là 60 byte. Như tôi đã nói, thông tin đó có thể hoặc không hữu ích, nhưng tôi đang cố gắng tìm hiểu lý do tại sao ứng dụng này không tạo ra phản hồi ICMP khi windows ping có vẻ hoạt động tốt trên máy đó.
Một chút miếng ngon khác có thể giúp, kết nối internet được giám sát sử dụng các điểm nóng nâng cao 4g AT ATT, thiết bị thực tế là thẻ không dây MC8790 sierra không dây.
Bất cứ ai có bất kỳ ý tưởng nào về lý do các ping này bị lỗi?
cảm ơn trước mọi thông tin hữu ích mà bạn có thể có và dành thời gian đọc bài đăng của tôi.
PS.
ICMPSendEcho có trả về lỗi không? – OnTheFly
Không có lỗi, nó chỉ không bao giờ nhận được một phản ứng. – PoultrySlave
Phiên bản windows nào? –