{"id":217,"date":"2016-07-02T13:08:01","date_gmt":"2016-07-02T13:08:01","guid":{"rendered":"http:\/\/www.demirel.web.tr\/?p=217"},"modified":"2021-09-08T12:16:49","modified_gmt":"2021-09-08T12:16:49","slug":"python-ile-ip-bloklari-hesaplama","status":"publish","type":"post","link":"https:\/\/demirel.web.tr\/?p=217","title":{"rendered":"Python ile IP Bloklar\u0131 Hesaplama"},"content":{"rendered":"<p>Ge\u00e7enlerde bir Web Servisinden ilgili IP aral\u0131\u011f\u0131n\u0131 \u00e7ekip IP bloklar\u0131n\u0131 hesaplamak ihtiyac\u0131 do\u011fdu. A\u015fa\u011f\u0131daki kod blo\u011fu ilgili web servisine yetkili kullan\u0131c\u0131 ile giri\u015f yapt\u0131ktan sonra, IP aral\u0131klar\u0131n\u0131 \u00e7ekmekte ve baz\u0131 hesaplamalardan sonra IP bloklar\u0131n\u0131 hesaplamaktad\u0131r. Ard\u0131ndan hesaplanan IP bloklar\u0131 bir dosyaya yaz\u0131lmaktad\u0131r.<br \/>\n<code lang=\"python\" width=\"600\" height=\"600\"><br \/>\n#!\/usr\/bin\/env python<\/code><\/p>\n<p><code lang=\"python\" width=\"600\" height=\"600\">from suds.client import Client<\/p>\n<p>from suds.wsse import *<\/p>\n<p>import ipaddress<\/p>\n<p>apnlist_file_name = 'APNblocks'<\/p>\n<p>url = \"http:\/\/abc.com\/spgw\/services\/AuthenticationPort?wsdl\"<\/p>\n<p>url2 = \"http:\/\/abc.com\/view\/ApnListService.wsdl\"<\/p>\n<p>#get sessionId<\/p>\n<p>client = Client(url)<\/p>\n<p>sessionid = client.service.createSession('admin','password')<\/p>\n<p>#get APN List<\/p>\n<p>token = {'sessionId' : sessionid }<\/p>\n<p>client2 = Client(url2)<\/p>\n<p>ssnns = ('ssn','http:\/\/abc.com\/mapping\/generated')<\/p>\n<p>ssn = Element('sessionId', ns=ssnns).setText(sessionid)<\/p>\n<p>client2.set_options(soapheaders=(token,ssn))<\/p>\n<p>result = client2.service.ApnList(\"wap\")<\/p>\n<p>begin_ip_last_value = []<\/p>\n<p>end_ip_last_value = []<\/p>\n<p>begin_ip_third_value = []<\/p>\n<p>end_ip_third_value = []<\/p>\n<p>begin_ip_second_value = []<\/p>\n<p>end_ip_second_value = []<\/p>\n<p>begin_ip_first_value = []<\/p>\n<p>end_ip_first_value = []<\/p>\n<p>cidr_last = []<\/p>\n<p>cidr_third = []<\/p>\n<p>#empty file<\/p>\n<p>open(apnlist_file_name, 'w').close()<\/p>\n<p>for i in range(0,len(result[\"blockList\"][\"block\"])):<\/p>\n<p>ipBlockBegin = result[\"blockList\"][\"block\"][i][\"ipBlockBegin\"]<\/p>\n<p>ipBlockEnd = result[\"blockList\"][\"block\"][i][\"ipBlockEnd\"]<\/p>\n<p>begin_ip_last_value.append(int(ipBlockBegin.split('.')[3]))<\/p>\n<p>end_ip_last_value.append(int(ipBlockEnd.split('.')[3]))<\/p>\n<p>begin_ip_third_value.append(int(ipBlockBegin.split('.')[2]))<\/p>\n<p>end_ip_third_value.append(int(ipBlockEnd.split('.')[2]))<\/p>\n<p>begin_ip_second_value.append(int(ipBlockBegin.split('.')[1]))<\/p>\n<p>end_ip_second_value.append(int(ipBlockEnd.split('.')[1]))<\/p>\n<p>begin_ip_first_value.append(int(ipBlockBegin.split('.')[0]))<\/p>\n<p>end_ip_first_value.append(int(ipBlockEnd.split('.')[0]))<\/p>\n<p>if begin_ip_third_value[i] == 0:<\/p>\n<p>cidr_third = 255 - end_ip_third_value[i]<\/p>\n<p>elif begin_ip_third_value[i] == 128:<\/p>\n<p>cidr_third = 128<\/p>\n<p>elif begin_ip_third_value[i] == end_ip_third_value[i]:<\/p>\n<p>cidr_third = 255<\/p>\n<p>else:<\/p>\n<p>cidr_third = end_ip_third_value[i] - begin_ip_third_value[i]<\/p>\n<p>if begin_ip_last_value[i] == 1:<\/p>\n<p>cidr_last = 0<\/p>\n<p>else:<\/p>\n<p>cidr_last = 255 - (begin_ip_last_value[i] - 1)<\/p>\n<p>cidr_last = 255 - cidr_last<\/p>\n<p>if (begin_ip_last_value[i] == end_ip_last_value[i]) &amp; (begin_ip_third_value[i] == end_ip_third_value[i]):<\/p>\n<p>continue<\/p>\n<p>cidr = \"255.255.\" + str(cidr_third) + '.' + str(cidr_last)<\/p>\n<p>ipBlockBegin = str(begin_ip_first_value[i]) + '.' + str(begin_ip_second_value[i]) + '.' + str(begin_ip_third_value[i]) + '.' + str(0)<\/p>\n<p>result_with_network = ipaddress.ip_network(u'%s\/%s' % (ipBlockBegin, cidr))<\/p>\n<p>netmask = result_with_network.prefixlen<\/p>\n<p>ipBlock = str(begin_ip_first_value[i]) + '.' + str(begin_ip_second_value[i]) + '.' + str(begin_ip_third_value[i]) + '.'+ str(begin_ip_last_value[i] - 1) + '\/' + str(netmask) + '\\n'<\/p>\n<p>file = open(apnlist_file_name,'a')<\/p>\n<p><\/code><code lang=\"python\" width=\"600\" height=\"600\">file.write(ipBlock)<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ge\u00e7enlerde bir Web Servisinden ilgili IP aral\u0131\u011f\u0131n\u0131 \u00e7ekip IP bloklar\u0131n\u0131 hesaplamak ihtiyac\u0131 do\u011fdu. A\u015fa\u011f\u0131daki kod blo\u011fu ilgili web servisine yetkili kullan\u0131c\u0131 ile giri\u015f yapt\u0131ktan sonra, IP aral\u0131klar\u0131n\u0131 \u00e7ekmekte ve baz\u0131&hellip;<a href=\"https:\/\/demirel.web.tr\/?p=217\" class=\"more-link\"><span class=\"more-button\">Continue reading<span class=\"screen-reader-text\">Python ile IP Bloklar\u0131 Hesaplama<\/span><\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"_links":{"self":[{"href":"https:\/\/demirel.web.tr\/index.php?rest_route=\/wp\/v2\/posts\/217"}],"collection":[{"href":"https:\/\/demirel.web.tr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demirel.web.tr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demirel.web.tr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demirel.web.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=217"}],"version-history":[{"count":19,"href":"https:\/\/demirel.web.tr\/index.php?rest_route=\/wp\/v2\/posts\/217\/revisions"}],"predecessor-version":[{"id":270,"href":"https:\/\/demirel.web.tr\/index.php?rest_route=\/wp\/v2\/posts\/217\/revisions\/270"}],"wp:attachment":[{"href":"https:\/\/demirel.web.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demirel.web.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demirel.web.tr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}