Tôi đang cố gắng lấy danh sách tất cả IP trên mạng LAN. Lý do cho điều này là tôi đang viết một ứng dụng sử dụng máy in hóa đơn STAR TSP100LAN.Liệt kê tất cả địa chỉ IP của thiết bị trên mạng wifi iOS sdk mà không có bonjour?
Quy trình lấy địa chỉ IP của máy in khá cồng kềnh đối với người dùng cuối. Nó liên quan đến việc tắt máy in, giữ nút nạp giấy, bật máy in trở lại, chờ 15 giây để máy in có được địa chỉ IP thông qua DHCP và sau đó rút ra một biên lai với thông tin này trên đó.
Thấy máy in không bật Bonjour có thể nhận địa chỉ IP thông qua các phương pháp khác không?
Bất kỳ trợ giúp nào được đánh giá cao! Tôi hy vọng đây không phải là một câu hỏi lặp lại, nhưng thông qua tìm kiếm của tôi, tôi dường như không thể tìm ra giải pháp nào!
CẬP NHẬT: Ok sau một chút suy nghĩ tôi đã đưa ra một giả giải pháp:
Xác định IPAddress hiện hành của iPad thông qua NSHost.
Strip các góc phần tư cuối cùng từ IPAddress
Sử dụng chuỗi tước như một tiền tố, lặp 1-255 cho góc phần tư cuối cùng
- Mỗi lần lặp, nỗ lực để mở một cổng đến địa chỉ được sử dụng sdk của máy in Nếu tôi nhận được phản hồi hợp lệ, tôi biết rằng IP là máy in Nếu tôi không loại trừ IP khỏi danh sách máy in khả dụng.
Cho đến nay tính năng này đã hoạt động, tôi đặt thời gian chờ là 5 mili giây cho mỗi lần mở cổng. Nhưng đã tìm thấy rằng điều này có thể trả lại một số kết quả null mặc dù có thực sự là một máy in trên mạng với một địa chỉ IP được chỉ định.
Có lẽ nếu tôi nhận được kết quả rỗng lần đầu tiên tôi nên tăng thời gian chờ lên 15 milles giây cho lần thử thứ hai khi tìm kiếm.
* Dải phần tư cuối cùng từ IPAddress ... lặp 1-255 * Vui lòng Google "mặt nạ mạng con" –
Theo nhà sản xuất có sẵn SDP (Giao thức khám phá sao). Bạn nên cố gắng thực hiện nó. Bởi vì bạn có thể 'thành công', hãy mở cùng một cổng trên một thiết bị không liên kết với suy nghĩ rằng bạn đã kết nối với máy in, nếu không. –