我的办公室里有100多台苹果设备。我想知道我想要的设备的细节
我使用PyAtv一个python模块来扫描网络上的设备。
所以我创建了一个脚本,它在调用时给我这样的结果。
rexter@rexter-pc:~$ python3 scan.py
Scan Results
========================================
Name: Himanshu Gupta’s Mac mini (intel)
Model/SW: Macmini8,1, Unknown OS
Address: 192.168.3.243
MAC: F0:18:98:EF:D2:E6
Deep Sleep: False
Identifiers:
- F0:18:98:EF:D2:E6
- F01898EFD2E6
Services:
- Protocol: AirPlay, Port: 7000, Credentials: None, Requires Password: False, Password: None, Pairing: Mandatory
- Protocol: RAOP, Port: 7000, Credentials: None, Requires Password: False, Password: None, Pairing: Mandatory
Name: Home Cinema
Model/SW: Apple TV 4K, tvOS 14.4 build 18K802
Address: 192.168.3.19
MAC: C8:D0:83:B0:70:C7
Deep Sleep: False
Identifiers:
- C8:D0:83:B0:70:C7
- 257B0C06-0227-4E42-AEEA-3C2C42B3E829
- C8D083B070C7
Services:
- Protocol: AirPlay, Port: 7000, Credentials: None, Requires Password: False, Password: None, Pairing: Mandatory
- Protocol: Companion, Port: 49152, Credentials: None, Requires Password: False, Password: None, Pairing: Mandatory
- Protocol: MRP, Port: 49153, Credentials: None, Requires Password: False, Password: None, Pairing: Optional
- Protocol: RAOP, Port: 7000, Credentials: None, Requires Password: False, Password: None, Pairing: Mandatory
Name: Pluto - GROUND FLOOR
Model/SW: ShairportSync, Unknown OS
Address: 172.17.100.55
MAC: None
Deep Sleep: False
Identifiers:
- E4BB83B4A641
Services:
- Protocol: RAOP, Port: 8901, Credentials: None, Requires Password: False, Password: None, Pairing: NotNeeded
Name: 2424
Model/SW: Apple TV 4K, tvOS 15.0
Address: 172.17.88.11
MAC: DC:56:E7:59:79:46
Deep Sleep: False
Identifiers:
- DC:56:E7:59:79:46
- DC56E7597946
Services:
- Protocol: Companion, Port: 49152, Credentials: None, Requires Password: False, Password: None, Pairing: Mandatory
- Protocol: AirPlay, Port: 7000, Credentials: None, Requires Password: False, Password: None, Pairing: Mandatory
- Protocol: RAOP, Port: 7000, Credentials: None, Requires Password: False, Password: None, Pairing: Mandatory但我想知道特定设备的结果
EXAMPLE >>> python3 scan.py 2424
Name: 2424
Model/SW: Apple TV 4K, tvOS 15.0
Address: 172.17.88.11
MAC: DC:56:E7:59:79:46
Deep Sleep: False
Identifiers:
- DC:56:E7:59:79:46
- DC56E7597946
Services:
- Protocol: Companion, Port: 49152, Credentials: None, Requires Password: False, Password: None, Pairing: Mandatory
- Protocol: AirPlay, Port: 7000, Credentials: None, Requires Password: False, Password: None, Pairing: Mandatory
- Protocol: RAOP, Port: 7000, Credentials: None, Requires Password: False, Password: None, Pairing: Mandatory我试了很多次,但我面临的挑战是多个Services和Identifiers。
任何帮助都是非常感谢的!谢谢!
发布于 2022-02-10 10:20:39
我假设您使用的是scan函数。
scan函数返回一个List[interface.BaseConfig]。
BaseConfig包含属性name。
所以,你可以试试:
name = '2424'
devices = scan(...)
for device in device:
if device.name == name:
my_device = device发布于 2022-02-10 20:53:10
您可以传递一个或多个标识符(最好是所有标识符)来扫描:
# Single identifier
confs = await pyatv.scan(loop, identifier="id")
# Multiple identifiers
confs = await pyatv.scan(loop, identifier={"id1", "id2", "id3"})它与运行atvremote scan时看到的标识符相同。
或者,您可以通过主机传递IP地址(如果设备位于另一个网络上,则不工作)。
confs = await pyatv.scan(loop, hosts=["10.0.0.6"])这里的文档也对此进行了描述:
https://stackoverflow.com/questions/71063017
复制相似问题