2009-09-28 2 views
1

WMI를 사용하여 네트워크 어댑터 상태에 대한 여러 항목을 검색하고 있습니다. 내가 알아 내야 할 것들 중에는 (a) 속도와 (b) 이중이 있습니다.프로그래밍 방식으로 Window의 네트워크 어댑터의 이중 상태를 검색 할 수 있습니까?

나는 WMI 다음 파이썬 코드를 사용하여 네트워크 어댑터의 속도를 감지 할 수 있었다 : MSNDis_LinkParameters :

from pycom.client import wmi 

dev_name = r"\\DEVICE\\{287EB4BB-5C2A-4108-B377-15E1D0B0E760}" 
query1 = """ 
SELECT * 
FROM MSNdis_EnumerateAdapter 
WHERE DeviceName = '%s'""" % dev_name 


wmi_ndis = wmi.WMI("root\\WMI") 
results = wmi_ndis.ExecQuery(query1) 
instance_name = results[0].InstanceName 

del results 

query2=""" 
SELECT * 
FROM MSNdis_LinkSpeed 
WHERE InstanceName='%s'""" % instance_name 
results = wmi_ndis.ExecQuery(query2) 
linkspeed = results[0].NdisLinkSpeed 

del results 

print instance_name, linkspeed 

del instance_name 
del linkspeed 
del wmi_ndis 

내가 원하는 데이터에 대한 완벽한 클래스로이 나타납니다. 그러나이 테이블은 채워지지 않은 것 같습니다. Win32_NetworkAdapter에도 값이 있지만 값도 채워지지 않습니다.

네이티브 C API 또는 WMI를 사용해도 행복 하겠지만 응용 프로그램이 임의의 언어로 작업해야하기 때문에 화면 스크래핑을 할 수 없습니다. 감사!

답변

0

여기서 중요한 문제는 WMI 공급자 구현이 OS가 아닌 NIC 공급 업체에서 처리한다는 것입니다. 따라서 일부 NIC에서는 다른 설정이없는 동안 일부 설정을 지원할 수 있습니다.

링크 속도의 경우 대부분의 NIC에서 작동하는 일부 WMI 스크립트의 경우 this을 확인하십시오.

듀플렉스의 경우 최소한 topic에 따르면 운이 없다고 생각합니다. 그 스레드의 마지막 게시물을보십시오. 어떤 경우에는 한계를 극복하는 방법에 대해 매우 구체적인 것처럼 보이지만 모든 NIC에서는 작동하지 않습니다.

관련 문제