잡다한것

맥에서 핑이 높을 때 소리내기

Injel me 2021. 11. 22. 23:49

집 인터넷이 좋은 편은 아니라 정말 정말 가끔씩 핑이 튈 때가 있다.

게임을 하기 불편할 정도로 튀는데, 네트워크 감시 장비처럼 소리가 났으면 좋겠다는 생각을

가지게 되었다가 만들게 되었다.

ini 파일을 처음 사용한 파일이다.

 

맥 터미널에 say라는 재밌는 명령어가 있어서 사용하게 되었다.

 

beep.py

import subprocess
from sys import exit
from time import sleep
from configparser import ConfigParser

try:
    ini = ConfigParser()
    ini.read(".setting.ini")

    ip = ini['Settings']['ip']
    ms_criteria = float(ini['Settings']['ms_criteria'])
    cycle_criteria = float(ini['Settings']['cycle_criteria'])
    sound_toggle = (ini['Settings']['sound'] == "true")
    message = ini['Settings']['message']

    command = ["ping", ip, "-c", "1"]
except Exception:
    print("[!] cannot find \'.setting.ini\'")
    print("  download: \'.setting.ini\'")
    print("  from: github.com/terria1020/ping-checker-OS-X-")
    exit()

def beep(level):
    comment = f"{level} ping!"
    if sound_toggle:
        subprocess.call(["say", message])
    print(comment)

def get_mil_sec(out):
    s_out = out.split("time=")
    need = s_out[1].split("ms")
    return float(need[0])
    return s_out

def request():
    ping = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    out, err = ping.communicate()
    ping.terminate()
    return out.decode()

def main():
    try:
        while (True):
            output = request()
            if (output.find("time=") < 0):
                beep("dead")
            else:
                ms = get_mil_sec(output)
                if ms > ms_criteria:
                    beep(f"[{ms} ms] high")
                    
                else:
                    print(f"ping: {ms} ms")
            sleep(cycle_criteria)
    except KeyboardInterrupt:
        print("\nKeyboard 인터럽트를 통한 프로그램 종료입니다.")

if __name__ == '__main__':
    main()

 

setting.ini

[Settings]
;ip for ping
ip : 192.168.0.1

;criteria is float
ms_criteria : 50.0
cycle_criteria : 0.5

;sound : true | false
sound : true
message : "ping에 문제가 있습니다!"

 

ini 파일을 통해 핑 주기와 소리 설정을 할 수 있다.

 

 

깃허브에 올렸다가 레포지토리 정리 겸 올린다.

'잡다한것' 카테고리의 다른 글

m1 맥북 롤 보이스 설정 활성화  (0) 2021.03.25
개발자 맞춤 키보드 커스텀 세팅  (0) 2020.11.30
블로그 이전 끝입니다.  (0) 2020.07.02