2014-09-25 2 views
-1

좋아요, 그래서 저는 우리 사무실이 너무 낮기 때문에 우리 사무실의 IP 사용 감사를 맡고 있습니다. 그래서 나는 검증 할 필요가있는 IP의리스트를 취하는 기본 스크립트를 작성하려고하고 있는데, IP의 사용을 검증하는 다른 스크립트와 비교하여 조정해야한다. Bash에서 작업하고 있지만 Python을 사용하여 원하는대로 조정할 수 있습니다.python을 사용하여 하나의 파일에서 다른 스크립트를 통해 목록을 실행하는 방법

그래서 "iprange"라는 파일이 있는데 여기에는 더 이상 작동하지 않는 동료가 만든 perl 파일이 있으며 IP를 사용하고 검사하여 사용중인 것을 확인한 다음 다시 출력합니다. Bash에서 나에게 "작동하는"예제가 있습니다.

cat iprange | xargs -I % checkIP.pl -s % > ipresults.txt 2>&1 

문제는 다음과 같습니다.

"This IP is free" 
"This IP is free" 
"This IP is used by XPNSE43525" 

두 가지 문제점이 있습니다. 1) 수천 개의 IP가 있으므로이 방법이 더 필요해 보이는 방법을 찾아야합니다.

10.4.8.5 
"This IP is free" 

또는이 이후

checkIP.pl -s 10.4.8.5 
"This IP is free" 

나는이 파이썬 함께 망치로 얻을 수 있었으면하고, bash는 가능하지 않는 것 같습니다. 그러나 파이썬에서 스크립트를 실행하고 bash에서와 같은 방식으로 출력하는 방법을 모르는 경우.

+0

이 소리 펄 스크립트. – squiguy

+0

스크립트는 IP를 입력 받아 사용하고 있는지 알려줍니다 ... 내가하려는 것은 perl 스크립트를 통해 IP 목록을 실행하고 하나씩 출력하는 또 다른 스크립트를 실행하는 것입니다. 일반적으로 perl 스크립트를 수정하여 파일에서 가져 오지는 못합니다. 일반적으로 유일한 사용법은 사용자의 개별 프롬프트 때문입니다. – Mallachar

답변

0

@ squiuy가 말하는 것은 정확합니다. PERL 스크립트를 수정해야 할 수도 있습니다.

grep "This IP is free" checkIP.pl 
grep "This IP is used by" checkIP.pl 

그런 다음 사용되는 스크립트 가정 greps

몇 실행하여 선이 스크립트에있는 파일의 라인을 찾기 '것은, Getopt :: 표준 QW (getopts로를);' 에 -s '매개 변수에 연결해야하는 변수는 항상 회전 디스플레이에 xargs를 호출하고 작은 래퍼 스크립트를 작성할 수

"$opt_s: This IP is free" 
"$opt_s: This IP is used by" 
1

에 라인 "$의 opt_s"

변경입니다 IP 주소를 입력 한 다음 checkIP.pl을 호출합니다.

cat iprange | xargs -I % checkIP.sh % > ipresults.txt 2>&1 

과 같은 출력을 볼 것으로 예상 :

checkIP.sh 그런

#!/usr/bin/env sh 
echo -n "$1 : " 
checkIP.pl -s $* 

이처럼 호출 할 수 있습니다 당신이를 수정해야처럼

10.4.8.5 : This IP is free 
10.1.1.1 : This IP is free 
192.168.1.1 : This IP is used by XPNSE43525 
8.8.8.8 : This IP is used by Google DNS 
+0

완벽한 작업, 감사합니다! – Mallachar

관련 문제