<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Creating a list of IPs from the range of IPS in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153948#M30211</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need to do investigation of web log data and need to see the IP address origination. For a referral match, I searched over internet and found a range of IPs(not the actual IP list) . Below the Sample of From IP to IP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; To&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Count&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="281"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD height="19" width="96"&gt;1.6.0.0&lt;/TD&gt;&lt;TD width="113"&gt;1.7.255.255&lt;/TD&gt;&lt;TD align="right" width="72"&gt;131072&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="19"&gt;1.22.0.0&lt;/TD&gt;&lt;TD&gt;1.23.255.255&lt;/TD&gt;&lt;TD align="right"&gt;131072&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="19"&gt;1.38.0.0&lt;/TD&gt;&lt;TD&gt;1.39.255.255&lt;/TD&gt;&lt;TD align="right"&gt;131072&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="19"&gt;1.186.0.0&lt;/TD&gt;&lt;TD&gt;1.186.255.255&lt;/TD&gt;&lt;TD align="right"&gt;65536&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="19"&gt;1.187.0.0&lt;/TD&gt;&lt;TD&gt;1.187.255.255&lt;/TD&gt;&lt;TD align="right"&gt;65536&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;P&gt;In the first record, the list would be as I could understand&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.6.0.0 , 1.6.0.1 .........1.6.0.255, 1.6.1.0, 1.6.1.1 .....1.6.1.255 and so on. Every octect needs to be countered till the "TO" IP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How can this be achieved considering the volume of ranges exisiting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help or alternative would be appreciated&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in Advance&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 08 Aug 2014 08:00:59 GMT</pubDate>
    <dc:creator>bnarang</dc:creator>
    <dc:date>2014-08-08T08:00:59Z</dc:date>
    <item>
      <title>Creating a list of IPs from the range of IPS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153948#M30211</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need to do investigation of web log data and need to see the IP address origination. For a referral match, I searched over internet and found a range of IPs(not the actual IP list) . Below the Sample of From IP to IP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; To&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Count&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="281"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD height="19" width="96"&gt;1.6.0.0&lt;/TD&gt;&lt;TD width="113"&gt;1.7.255.255&lt;/TD&gt;&lt;TD align="right" width="72"&gt;131072&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="19"&gt;1.22.0.0&lt;/TD&gt;&lt;TD&gt;1.23.255.255&lt;/TD&gt;&lt;TD align="right"&gt;131072&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="19"&gt;1.38.0.0&lt;/TD&gt;&lt;TD&gt;1.39.255.255&lt;/TD&gt;&lt;TD align="right"&gt;131072&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="19"&gt;1.186.0.0&lt;/TD&gt;&lt;TD&gt;1.186.255.255&lt;/TD&gt;&lt;TD align="right"&gt;65536&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="19"&gt;1.187.0.0&lt;/TD&gt;&lt;TD&gt;1.187.255.255&lt;/TD&gt;&lt;TD align="right"&gt;65536&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;P&gt;In the first record, the list would be as I could understand&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.6.0.0 , 1.6.0.1 .........1.6.0.255, 1.6.1.0, 1.6.1.1 .....1.6.1.255 and so on. Every octect needs to be countered till the "TO" IP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How can this be achieved considering the volume of ranges exisiting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help or alternative would be appreciated&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in Advance&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Aug 2014 08:00:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153948#M30211</guid>
      <dc:creator>bnarang</dc:creator>
      <dc:date>2014-08-08T08:00:59Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a list of IPs from the range of IPS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153949#M30212</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Well, I would suggest you need 4 nested do loops, something along the lines of:&lt;/P&gt;&lt;P&gt;data want;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do I=1 to 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=6,7,22,23,38,39,186,187;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* updated for all */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do k=0 to 255;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do l=0 to 255;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip=compress(put(I,best.)||'.'||put(j,best.)||'.'||put(k,best.)||'.'||put(l,best.));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Aug 2014 08:10:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153949#M30212</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-08-08T08:10:07Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a list of IPs from the range of IPS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153950#M30213</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Many Many Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This solution worked for me. I just made the looping dynamic and the code worked like charm. Many Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Aug 2014 08:35:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153950#M30213</guid>
      <dc:creator>bnarang</dc:creator>
      <dc:date>2014-08-08T08:35:21Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a list of IPs from the range of IPS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153951#M30214</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This is a more complete approach:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let start=1.6.0.0;&lt;/P&gt;&lt;P&gt;%let end=1.7.255.255;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data ip_ad (keep=ip_address);&lt;/P&gt;&lt;P&gt;start_ad = 0;&lt;/P&gt;&lt;P&gt;do i = 1 to 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp; i1 = input(scan("&amp;amp;start",i,'.'),3.);&lt;/P&gt;&lt;P&gt;&amp;nbsp; start_ad = start_ad + i1 * 256**(4-i);&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;end_ad = 0;&lt;/P&gt;&lt;P&gt;do i = 1 to 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp; i1 = input(scan("&amp;amp;end",i,'.'),3.);&lt;/P&gt;&lt;P&gt;&amp;nbsp; end_ad = end_ad + i1 * 256**(4-i);&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;length ip_address $ 15;&lt;/P&gt;&lt;P&gt;do address = start_ad to end_ad;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ip_address = ' ';&lt;/P&gt;&lt;P&gt;&amp;nbsp; char_ad = put(address,hex8.);&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i = 0 to 3;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_address = compress(ip_address !! put(input(substr(char_ad,i*2+1,2),hex2.),best3.));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i ne 3 then ip_address = trim(ip_address) !! '.';&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RW9's example would have problems with&lt;/P&gt;&lt;P&gt;start=1.7.0.0&lt;/P&gt;&lt;P&gt;end=2.6.255.255&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Aug 2014 08:45:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153951#M30214</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2014-08-08T08:45:45Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a list of IPs from the range of IPS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153952#M30215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;IPv4 addressing is based on 4 bytes. They are based on bit/byte processing.&amp;nbsp; Testing via mask's is easy with BAND BXOR&lt;/P&gt;&lt;P&gt;What you could do is accessing your problem just like that. Convert the decimal reprentation as it was in the IP protocol 4 bytes (char).&amp;nbsp; &lt;A href="http://support.sas.com/documentation/cdl/en/lefunctionsref/67398/HTML/default/viewer.htm#n1jfxetjdn0nxan1w4e64c7rouz9.htm" title="http://support.sas.com/documentation/cdl/en/lefunctionsref/67398/HTML/default/viewer.htm#n1jfxetjdn0nxan1w4e64c7rouz9.htm"&gt;SAS(R) 9.4 Functions and CALL Routines: Reference, Third Edition&lt;/A&gt; (byte)&lt;/P&gt;&lt;P&gt;The testing of ranges will just become a bit-check non zero after some band-masking.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Aug 2014 09:13:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153952#M30215</guid>
      <dc:creator>jakarman</dc:creator>
      <dc:date>2014-08-08T09:13:14Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a list of IPs from the range of IPS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153953#M30216</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks guys. The logics have really helped me build my ip address repository&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Aug 2014 11:07:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-a-list-of-IPs-from-the-range-of-IPS/m-p/153953#M30216</guid>
      <dc:creator>bnarang</dc:creator>
      <dc:date>2014-08-12T11:07:53Z</dc:date>
    </item>
  </channel>
</rss>

