मैं अजगर का उपयोग करूंगा। आजकल हर linst ststem में python2 स्थापित है।
प्रत्येक आईपी पते को एक प्रमुख (साहचर्य सरणी) में कुंजी = मान जोड़े के रूप में जोड़ें {{"12.34.56.78": 1, "87.76.43.21": 3}।
आप एक महत्वपूर्ण के रूप में आईपी पते को 'सत्यापित' करते हैं और 1 से मूल्य बढ़ाते हैं। यदि आप डिफ़ॉल्ट ("आईपी") का उपयोग करते हैं, यदि कुंजी मौजूद नहीं है, तो यह डिफ़ॉल्ट मान के साथ बनाया जाता है। 0. यदि कुंजी मौजूद नहीं है पहले से ही, डिफ़ॉल्ट कुछ भी नहीं करता है। मान अगली पंक्ति पर बढ़ा हुआ है।
#!/usr/bin/python2
infile = open("file.txt","r")
iplist = {} # create an empty dict
for line in infile:
line = line.strip() # remove newline.
if line: # if not a blank line.
iplist.setdefault(line, 0) # check for ip and add with default value of 0
iplist[line] += 1 # increment
outfile = open("out.txt","w") #open output file
for key in iplist.keys():
line = "%-15s = %s" % (key, iplist[key])
print line # print uf desired.
outfile.write(line + "\n")
आउटआउट फ़ाइल:
cat out.txt
27.33.65.2 = 2
58.161.137.7 = 1
121.50.198.5 = 1
184.173.187.1 = 3
मुझे पता है कि आप एक कमांड लाइन समाधान की तलाश कर रहे थे, लेकिन जैसा कि आप देख सकते हैं कि यह एक सुरुचिपूर्ण स्वरूपित प्रदर्शन है जो केवल एक दर्जन लाइनों को ले गया है। अजगर प्रशासन के लिए एक उत्कृष्ट उपकरण है।