2013-05-29 49 views
11

Tôi đang cố gắng phát hiện xem iPhone của tôi có nằm trong cùng một mạng với Raspberry Pi của tôi hay không. Tôi muốn thực hiện một kịch bản khi tôi đang ở nhà và sự hiện diện của iPhone của tôi được đăng ký trong mạng LAN của tôi.Làm thế nào để phát hiện iPhone trên mạng?

Dường như khi điện thoại ở chế độ chờ, ngay cả khi không có cổng đồng bộ hóa iphone (6207/tcp). "/ usr/bin/nmap -n -sT -p62078 [IP cục bộ của điện thoại của tôi]" không hiển thị lưu trữ nào. Tôi tự hỏi tôi có thể quét cái gì khác nữa. Rõ ràng là điện thoại đang trực tuyến và sẵn sàng chấp nhận các cuộc gọi FaceTime (dữ liệu qua 3G bị hủy kích hoạt). Tôi có thể thực hiện một cái gì đó với avahi mà tôi đang sử dụng trên Raspberry Pi của tôi, hoặc có những cách khác.

+0

Tôi đã từ bỏ việc này và hiện đang sử dụng bluetooth để kiểm tra thường xuyên nếu iPhone của tôi nằm trong phạm vi phủ sóng. – PiEnthusiast

+0

Trong trường hợp ai đó bắt gặp điều này và tự hỏi tôi làm gì để phát hiện sự hiện diện bằng cách sử dụng bluetooth: Tôi cố gắng giải quyết tên của địa chỉ thiết bị (đã biết) của tôi ('sudo hcitool name xx: xx: xx: xx: xx: xx'). Nếu tôi nhận được phản hồi hợp lệ, điện thoại nằm trong phạm vi BT. – PiEnthusiast

Trả lời

3

Bạn có thể tìm danh sách thiết bị trên mạng của mình bằng cách điều tra bộ nhớ cache arp của bạn.

arp -a

Đơn giản chỉ cần viết một kịch bản bash để chạy arp -a tại một khoảng thời gian đều đặn, và tìm kiếm các địa chỉ mac của điện thoại.

Bạn có thể tiến xa hơn với điều này và thực hiện các tác vụ khác nhau tùy thuộc vào thương hiệu của thiết bị được kết nối.

3 số thập lục phân đầu tiên của địa chỉ mac là id nhà cung cấp.

Đi theo địa chỉ mac sau:

00:19:E3:AB:CD:EF 

00:19:E3: là một trong những địa chỉ mac đăng ký cho các thiết bị táo.

Bằng cách so sánh các thiết bị trên mạng của bạn với this list, bạn có thể phát hiện khi nào ví dụ thiết bị '3com' hoặc thiết bị 'dell' gắn vào mạng của bạn.

http://www.coffer.com/mac_find/?string=apple

+0

Cảm ơn mẹo. Đáng tiếc là iPhone đi vào một số chế độ ngủ sâu khi chúng không được sử dụng. Bộ nhớ cache arp không hiển thị bất kỳ bốn iDevices của tôi. – PiEnthusiast

1

Bạn có thể làm "arp-scan -l -r10" cho điều đó (thử nghiệm này bản thân mình), nhưng vấn đề là nếu được kích hoạt dữ liệu di động iphone sẽ đi và đình chỉ wifi nếu màn hình bị khóa để an toàn ắc quy. vì vậy bạn cần vô hiệu hóa dữ liệu di động .. sau đó arp-scan sẽ hoạt động.

+0

Bạn có biết tần suất iPhone kết nối với WiFi khi bị khóa không? Tôi đang nghĩ về việc phát hiện sự hiện diện của mọi người trong việc xây dựng và nó không có vấn đề gì, nếu sẽ có độ chính xác khoảng nửa giờ. –

+0

Xem câu trả lời nửa dơi của tôi dưới đây. IPhone đã khóa/ngủ gửi một lượng đáng kể lưu lượng truy cập mạng lớp thấp, có thể cung cấp cho bạn độ chính xác độ phân giải ~ 20 phút – user3235770

1

Tôi vừa trải qua một tuần đánh bại vấn đề này vì vậy tôi có thể không gửi tin nhắn SMS đến nhà của tôi khi cô ấy ở nơi làm việc.

Ping sẽ không hoạt động vì iPhone sẽ không phản hồi ICMP khi ngủ. Đọc bộ nhớ cache ARP sẽ không hoạt động vì iPhone đang ngủ sẽ đến và đi (kiểm tra mỗi 30 giây trong vài phút). Cách duy nhất tôi tìm thấy là 'đáng tin cậy' xác định khi nào hai chiếc iPhone của tôi trên mạng cục bộ của tôi là sử dụng thư viện PCAP dotnet để tìm bất kỳ gói nào có nguồn gốc từ một trong hai địa chỉ MAC của điện thoại. Ví dụ: nếu bạn chạy Wireshark bằng bộ lọc chụp

ether src <iphone-mac-address> 

bạn sẽ thấy một lượng đáng ngạc nhiên lưu lượng truy cập/phát hiện mạng từ điện thoại. Nó vẫn còn trạng thái yên tĩnh, nhưng cho đến nay khoảng thời gian dài nhất tôi đã thấy giữa các gói bị bắt là khoảng 10 phút. Bạn sẽ phải đợi cho đến khi bạn không nghe thấy từ điện thoại trong một khoảng thời gian nào đó (tôi sử dụng 15 phút) trước khi tuyên bố nó không có ở nhà.

Với kỹ thuật này, bạn sẽ tìm thấy điện thoại một cách nhanh chóng khi nó gia nhập lại mạng gia đình, giả định rằng điện thoại của bạn được cấu hình cho DHCP. Tôi cũng sử dụng tính năng phản chiếu cổng trên công tắc Ethernet chính của mình để bao gồm lưu lượng truy cập từ các điểm truy cập không dây của tôi.

Tôi không có giải pháp Raspberry Pi cho điều này, bởi vì chuyên môn về Linux của tôi rất hạn chế, nhưng một người khác có thể giúp bạn theo những dòng đó. Tôi có một dịch vụ Windows sử dụng thư viện PCAP và cho đến nay nó hoạt động đáng tin cậy, với giới hạn chờ đợi 15 phút trước khi quyết định một chiếc iPhone đã rời khỏi mạng.

* cập nhật 2-3-2018 *

Tôi có thuật toán phát hiện này xuống còn khoảng 5 phút, sử dụng kết hợp các thông điệp ping/arp hướng đến mỗi điện thoại, khoảng một lần mỗi phút. Dường như làm việc tuyệt vời.

Các vấn đề liên quan