2012-09-11 3 views
1

Windows 7에서 Python을 사용하여 하나 이상의 네트워크 카드를 어떻게 사용할 수 있습니까? psutil 라이브러리를 사용해 보았지만 전송 된 데이터 만 반환합니다.Windows 7에서 Python을 사용하여 네트워크 카드 사용률을 얻는 방법

나는 당신이 비율을 얻을 수있는 네트워크 카드의 목록과 사용

Network card 1 - 1% 
Network card 2 - 0% 
Network card 3 - 5% 
+0

전송 된 데이터의 양을 비교하거나 최대 용량과 비교하여이를 파생시킵니다. –

답변

0

을 좀하고 싶습니다하지만 당신은 바이트 전송 및 수신받을 수 psutil, 수입 psutil 다시 (정규식 모듈)을 설치합니다. 내가 어떻게했는지는 아래의 예제 코드를 참조하십시오.

import psutil # http://code.google.com/p/psutil/ 
import re # Regular expression 

#Percentage function 
def percentage(part, whole): 
     return 100 * float(part)/float(whole) 

if __name__ == '__main__': 

    #Retrieve all stats for all Network Cards using psutil 
    Stats = psutil.net_io_counters(pernic=True) 

    #Just showing printed values for Stats, useful for new coders :) 
    for key, val in Stats.items(): 
     print key, val 


    #Filter Starts, convert to string for use with Regular expression 
    LanString = str(Stats['Local Area Connection']) 
    WirelessString = str(Stats['Wireless Network Connection']) 

    #Regular expression pattern that collects values between = character and , character 
    pattern = re.compile("\=(.*?)\,") 

    #Find all values matching the pattern 
    LanResult = re.findall(pattern, LanString) 
    WirelessResult = re.findall(pattern, WirelessString) 

    #Select values bytes_sent + bytes_recieved, convert to integers, add together 
    LanSumUsage = int(LanResult[0]) + int(LanResult[1]) 
    WirelessSumUsage = int(WirelessResult[0]) + int(WirelessResult[1]) 

    #Calculate and print percentages 
    TotalUsage = LanSumUsage + WirelessSumUsage 
    LanCardPercentage = percentage(LanSumUsage, TotalUsage) 
    WirelessCardPercentage = percentage(WirelessSumUsage, TotalUsage) 
    print("\nLan Card: %d%%") % LanCardPercentage 
    print("Wireless Card: %d%%") % WirelessCardPercentage 

이 코드는 프로그래밍에 익숙하지 않은 상태에서 1 주일 간 섭취하십시오. 또한 오류 처리도하지 않습니다.

아, 내 출력이 아래입니다. LAN 카드가 사용되지 않습니다.

Wireless Network Connection iostat(bytes_sent=801853517, bytes_recv=2106217519, packets_sent=4655581, packets_recv=6351113, errin=0, errout=0, dropin=0, dropout=0) 
isatap.{10384343-0618-4406-B3D9-DA096A39B0DC} iostat(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0) 
Teredo Tunneling Pseudo-Interface iostat(bytes_sent=3358183, bytes_recv=27088294, packets_sent=40579, packets_recv=33727, errin=0, errout=1474, dropin=0, dropout=0) 
Local Area Connection iostat(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0) 
Loopback Pseudo-Interface 1 iostat(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0) 
isatap.{109E44C6-1D07-4E41-A7EA-FCFF2284A1DB} iostat(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0) 

Lan Card: 0% 
Wireless Card: 100% 
관련 문제