파이썬 코드 준비
import subprocess
import time
def ping_sweep(network):
for i in range(1, 255):
ip = f"{network}.{i}"
try:
output = subprocess.check_output(["ping", "-c", "1", "-W", "1", ip], stderr=subprocess.STDOUT, universal_newlines=True)
if "1 received" in output:
pass # 호스트가 응답했을 때만 처리 필요할 경우 여기에 코드 추가
except subprocess.CalledProcessError:
pass # 호스트가 응답하지 않을 경우 처리 필요할 경우 여기에 코드 추가
def main():
network = "10.5.5"
for _ in range(4): # 4번 반복
ping_sweep(network)
time.sleep(60) # 1분 대기
if __name__ == "__main__":
main()
Python
복사
import subprocess
def ping_specific_ip(ip):
try:
output = subprocess.check_output(["ping", "-c", "1", "-W", "1", ip], stderr=subprocess.STDOUT, universal_newlines=True)
if "1 received" in output:
pass # 호스트가 응답했을 때 처리할 필요가 있으면 이곳에 추가
except subprocess.CalledProcessError:
pass # 호스트가 응답하지 않았을 때 처리할 필요가 있으면 이곳에 추가
def main():
ips = ["10.5.5.47", "10.5.5.40"]
while True: # 무한 반복
for ip in ips:
ping_specific_ip(ip)
if __name__ == "__main__":
main()
Plain Text
복사
파일 등록
cd /usr/local/bin
sudo vi ping_sweep.py
Python
복사
위의 파이썬 코드 작성
권한 수정
sudo chmod +x /usr/local/bin/ping_sweep.py
Python
복사
서비스등록
서비스 파일 작성
sudo vi /etc/systemd/system/ping_sweep.service
Python
복사
내용 작성
[Unit]
Description=Ping Sweep Service
After=network.target
[Service]
ExecStart=/usr/bin/python3 /usr/local/bin/ping_sweep.py
Restart=always
User=root
[Install]
WantedBy=multi-user.target
Plain Text
복사
서비스 활성화 및 시작
sudo systemctl daemon-reload
sudo systemctl enable ping_sweep.service
sudo systemctl start ping_sweep.service
Plain Text
복사
서비스 상태 확인
sudo systemctl status ping_sweep.service
Plain Text
복사