आप exchange_ips.pl
तीन लगातार ips (फ़ंक्शन exchange_const()
) या तीन वृद्धिशील ips (फ़ंक्शन exchange_incr()
) द्वारा आईपी का आदान-प्रदान करने के लिए निम्नलिखित पर्ल स्क्रिप्ट का उपयोग कर सकते हैं । #
स्क्रिप्ट के अंत में फ़ंक्शन कॉल के सामने बस एक टिप्पणी ( ) जोड़ें , जिसकी आपको आवश्यकता नहीं है।
ध्यान दें कि मूल आईपी के साथ 253
या उच्चतर समाप्त होने पर एक या अधिक वृद्धिशील ips गलत होंगे ।
स्क्रिप्ट के साथ शुरू होने वाली सभी लाइनों को संशोधित करता है $domainname
। यदि डोमेन नाम मायने नहीं रखता है या यदि आपकी फ़ाइलों में केवल एक / एक ही डोमेन के लिए लाइनें हैं, तो सेट करें my $domainname = ".+";
।
#! / Usr / bin / perl
सख्त का उपयोग करें;
चेतावनी का उपयोग करें;
my @data = <STDIN>;
मेरे $ domainname = "उपडोमेन";
मेरे $ const_ip1 = "123.123.123.123";
मेरे $ const_ip2 = "124.124.124.124";
मेरे $ const_ip3 = "125.125.125.125";
मेरा $ पैटर्न = qr / ^ ($ domainname \ s + A \ s +) ([\ d \।] +) / है;
उप एक्सचेंज_कॉस्ट ($) {
मेरे $ डाटारेफ = शिफ्ट;
मेरे $ पाया = 0;
foreach (@ $ dataref) {
अगर ($ _ = ~ m / $ पैटर्न /) {
जब तक ($ नहीं मिला) {
$ पाया = 1;
प्रिंटफ "% s% s \ n% s% s \ n% s% s \ n", $ 1, $ const_ip1, $ 1, $ const_ip2, $ 1, $ const_ip3;
}
} अन्य {
प्रिंट $ _;
}
}
}
उप विनिमय_संकल्प ($) {
मेरे $ डाटारेफ = शिफ्ट;
मेरे $ पाया = 0;
foreach (@ $ dataref) {
अगर ($ _ = ~ m / $ पैटर्न /) {
जब तक ($ नहीं मिला) {
$ पाया = 1;
मेरी $ const = $ 1;
my @iparr = विभाजित / END./, $ 2;
(1 .. 3) के लिए {
$ Iparr [3] ++;
printf "% s% s \ n", $ const, सम्मिलित हों ",", @iparr;
}
}
} अन्य {
प्रिंट $ _;
}
}
}
# निरंतर आईपीएस के साथ आईपी का आदान-प्रदान
exchange_const (\ @ डेटा);
# वृद्धिशील ips के साथ आईपी विनिमय
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
उदाहरण:
नमूना फ़ाइल को modifiy:
# कुछ फू
उपडोमेन A 200.201.202.203
# डुप्लिकेट
उपडोमेन A 200.201.202.203
# कुछ बार
otherdomain A 99.99.99.99
अन्य कंडोम 1.1.1.1
# एक और डुप्लिकेट
उपडोमेन A 200.201.202.203
का आउटपुट exchange_const()
:
# कुछ फू
उपडोमेन ए 123.123.123.123
उपडोमेन A 124.124.124.124
उपडोमेन A 125.125.125.125
# डुप्लिकेट
# कुछ बार
otherdomain A 99.99.99.99
अन्य कंडोम 1.1.1.1
# एक और डुप्लिकेट
का आउटपुट exchange_incr()
:
# कुछ फू
उपडोमेन A 200.201.202.204
उपडोमेन A 200.201.202.205
उपडोमेन A 200.201.202.206
# डुप्लिकेट
# कुछ बार
otherdomain A 99.99.99.99
अन्य कंडोम 1.1.1.1
# एक और डुप्लिकेट
* A 200.201.202.203
दूसरे शब्दों में, किसी भी उपडोमेन नाम, लेकिन विशिष्ट A और IP पते के लिए होगी, या उपडोमेन प्रत्येक फ़ाइल में समान है?