다음 perl 스크립트 exchange_ips.pl
를 사용하여 3 개의 상수 ip (function exchange_const()
) 또는 3 개의 증분 ip (function )로 ip를 교환 할 수 있습니다 exchange_incr()
. #
필요하지 않은 스크립트 끝에 함수 호출 앞에 주석 ( )을 추가하기 만하면 됩니다.
원래의 IP로 끝나 253
거나 그 이상 이면 하나 이상의 증분 IP가 올바르지 않습니다 .
스크립트는로 시작하는 모든 줄을 수정합니다 $domainname
. 도메인 이름이 중요하지 않거나 파일에 하나의 동일한 도메인에 대한 행만 포함 된 경우을 설정하십시오 my $domainname = ".+";
.
#! / usr / bin / perl
엄격한 사용;
경고를 사용하십시오.
내 @ 데이터 = <STDIN>;
내 $ 도메인 이름 = "하위 도메인";
내 $ const_ip1 = "123.123.123.123";
내 $ const_ip2 = "124.124.124.124";
내 $ const_ip3 = "125.125.125.125";
내 $ pattern = qr / ^ ($ domainname \ s + A \ s +) ([\ d \.] +) / is;
하위 exchange_const ($) {
내 $ dataref = 이동;
내 $ found = 0;
foreach (@ $ dataref) {
if ($ _ = ~ m / $ pattern /) {
그렇지 않으면 ($ found) {
$ found = 1;
printf "% s % s \ n % s % s \ n % s % s \ n", $ 1, $ const_ip1, $ 1, $ const_ip2, $ 1, $ const_ip3;
}
} else {
인쇄 $ _;
}
}
}
sub exchange_incr ($) {
내 $ dataref = 이동;
내 $ found = 0;
foreach (@ $ dataref) {
if ($ _ = ~ m / $ pattern /) {
그렇지 않으면 ($ found) {
$ found = 1;
내 $ const = $ 1;
내 @iparr = split /\./, $ 2;
(1 .. 3) {
$ iparr [3] ++;
printf "% s % s \ n", $ const, "."가입, @iparr;
}
}
} else {
인쇄 $ _;
}
}
}
# 일정한 IP로 IP 교환
exchange_const (\ @ 데이터);
# IP를 증분 IP로 교환
exchange_incr (\ @ 데이터);
다음과 같이 스크립트를 호출하십시오.
perl exchange_ips.pl < your_file
모든 파일을 반복합니다 (백업 포함).
for f in /named_ext/*; do rename s/$/.bak/ $f; perl exchange_ips.pl < $f.bak > $f; done
예:
수정할 샘플 파일 :
# foo
하위 도메인 A 200.201.202.203
# 중복
하위 도메인 A 200.201.202.203
# 어떤 바
기타 도메인 A 99.99.99.99
다른 도메인 A 1.1.1.1
# 또 다른 사본
하위 도메인 A 200.201.202.203
출력 exchange_const()
:
# foo
하위 도메인 A 123.123.123.123
하위 도메인 A 124.124.124.124
하위 도메인 A 125.125.125.125
# 중복
# 어떤 바
기타 도메인 A 99.99.99.99
다른 도메인 A 1.1.1.1
# 또 다른 사본
출력 exchange_incr()
:
# foo
하위 도메인 A 200.201.202.204
하위 도메인 A 200.201.202.205
하위 도메인 A 200.201.202.206
# 중복
# 어떤 바
기타 도메인 A 99.99.99.99
다른 도메인 A 1.1.1.1
# 또 다른 사본
* A 200.201.202.203
- 즉, 하위 도메인 이름,하지만 특정 및 IP 주소 또는 하위 도메인 각 파일에서 동일?