<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.rabbibob.com/index.php?action=history&amp;feed=atom&amp;title=Cisco_MAC_Comparison</id>
	<title>Cisco MAC Comparison - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.rabbibob.com/index.php?action=history&amp;feed=atom&amp;title=Cisco_MAC_Comparison"/>
	<link rel="alternate" type="text/html" href="https://www.rabbibob.com/index.php?title=Cisco_MAC_Comparison&amp;action=history"/>
	<updated>2026-04-28T19:11:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://www.rabbibob.com/index.php?title=Cisco_MAC_Comparison&amp;diff=634&amp;oldid=prev</id>
		<title>Rabbi Bob at 19:41, 31 December 2007</title>
		<link rel="alternate" type="text/html" href="https://www.rabbibob.com/index.php?title=Cisco_MAC_Comparison&amp;diff=634&amp;oldid=prev"/>
		<updated>2007-12-31T19:41:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:41, 31 December 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l328&quot;&gt;Line 328:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 328:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Perl]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Perl]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:2007-11]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Weblog-&lt;/ins&gt;2007-11]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Programs]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Programs]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Networking]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Networking]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mw_RabbiBob_139-wiki_:diff::1.12:old-524:rev-634 --&gt;
&lt;/table&gt;</summary>
		<author><name>Rabbi Bob</name></author>
	</entry>
	<entry>
		<id>https://www.rabbibob.com/index.php?title=Cisco_MAC_Comparison&amp;diff=524&amp;oldid=prev</id>
		<title>Rabbi Bob at 13:15, 1 December 2007</title>
		<link rel="alternate" type="text/html" href="https://www.rabbibob.com/index.php?title=Cisco_MAC_Comparison&amp;diff=524&amp;oldid=prev"/>
		<updated>2007-12-01T13:15:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:15, 1 December 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l326&quot;&gt;Line 326:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 326:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Perl]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:2007-11]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Programs]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Networking]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rabbi Bob</name></author>
	</entry>
	<entry>
		<id>https://www.rabbibob.com/index.php?title=Cisco_MAC_Comparison&amp;diff=522&amp;oldid=prev</id>
		<title>Rabbi Bob: New page: =What?= Recently I had to start a process to map PCs to ports on Cisco switches.  While I don&#039;t have access to the Cisco gear directly, I can request dumps of the mac and arp tables.  With...</title>
		<link rel="alternate" type="text/html" href="https://www.rabbibob.com/index.php?title=Cisco_MAC_Comparison&amp;diff=522&amp;oldid=prev"/>
		<updated>2007-11-30T23:12:53Z</updated>

		<summary type="html">&lt;p&gt;New page: =What?= Recently I had to start a process to map PCs to ports on Cisco switches.  While I don&amp;#039;t have access to the Cisco gear directly, I can request dumps of the mac and arp tables.  With...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=What?=&lt;br /&gt;
Recently I had to start a process to map PCs to ports on Cisco switches.  While I don&amp;#039;t have access to the Cisco gear directly, I can request dumps of the mac and arp tables.  With that, I wrote some PERL to cross match based on MAC addresses.&lt;br /&gt;
&lt;br /&gt;
I have newer code that not only does DNS lookup, but WINS as well for better resolution.  The newer code is also less specific on the format of the switch in data.&lt;br /&gt;
&lt;br /&gt;
=Perl=&lt;br /&gt;
==Switch Input==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
&lt;br /&gt;
opendir(DIR, &amp;quot;./switch_in&amp;quot;);&lt;br /&gt;
my @files = grep(/\.txt$/,readdir(DIR));&lt;br /&gt;
closedir(DIR);&lt;br /&gt;
&lt;br /&gt;
my $out=&amp;quot;routerinputcommands.txt&amp;quot;;&lt;br /&gt;
my $COMBINED=&amp;quot;scannedswitches.csv&amp;quot;;&lt;br /&gt;
my $LOGFILE_IN=();&lt;br /&gt;
&lt;br /&gt;
my $SWITCHNAME=();&lt;br /&gt;
my $MACADDRESS=();&lt;br /&gt;
my $VLAN=();&lt;br /&gt;
my $CONNECTIONTYPE=();&lt;br /&gt;
my $PORTS=();&lt;br /&gt;
&lt;br /&gt;
open OUT, &amp;quot;&amp;gt;$out&amp;quot; or die &amp;quot;Cannot open $out for write :$!&amp;quot;;&lt;br /&gt;
open COMBINED, &amp;quot;&amp;gt;$COMBINED&amp;quot; or die &amp;quot;Cannot open $COMBINED for write :$!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
foreach $file (@files) &lt;br /&gt;
    {&lt;br /&gt;
	$LOGFILE_IN=&amp;quot;switch_in/$file&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	open LOGFILE_IN, $LOGFILE_IN or die &amp;quot;Cannot open $LOGFILE_IN for read :$!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
    while (&amp;lt;LOGFILE_IN&amp;gt;) &lt;br /&gt;
	    {&lt;br /&gt;
        #Get Switch Name&lt;br /&gt;
        #sh mac-address-table | inc Fa0/&lt;br /&gt;
        #sh mac-address-table | inc Fa0/&lt;br /&gt;
        if ($_=~m/(.+)#sh mac(.+)/)&lt;br /&gt;
            {&lt;br /&gt;
            $SWITCHNAME=$1;&lt;br /&gt;
            print &amp;quot;Reading from Switch $1\n&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
        #ES403(SVH) (enable) sh cam dy | ex 2/49  &lt;br /&gt;
        &lt;br /&gt;
        elsif ($_=~m/(.+) \(enable\) (.+)/)&lt;br /&gt;
            {&lt;br /&gt;
            $SWITCHNAME=$1;&lt;br /&gt;
            print &amp;quot;Reading from Switch $1\n&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
        elsif ($_=~m/-------------------------------------------/)&lt;br /&gt;
            {}&lt;br /&gt;
        elsif ($_=~m/----    -----------       --------    -----/)&lt;br /&gt;
            {}&lt;br /&gt;
        elsif ($_=~m/Vlan    Mac Address       Type        Ports/)&lt;br /&gt;
            {}&lt;br /&gt;
        elsif ($_=~m/Total Mac Addresses for this criterion:/)&lt;br /&gt;
            {}&lt;br /&gt;
&lt;br /&gt;
        elsif ($_=~m/Total Matching CAM Entries Displayed/)&lt;br /&gt;
            {}&lt;br /&gt;
        elsif ($_=~m/----  ------------------    -----  -------------------------------------------/)&lt;br /&gt;
            {}&lt;br /&gt;
        elsif ($_=~m/          Mac Address Table/)&lt;br /&gt;
            {}&lt;br /&gt;
        elsif ($_=~m/\* \= Static Entry. \+ \= Permanent Entry. \# \= System Entry. R \= Router Entry./)&lt;br /&gt;
            {}&lt;br /&gt;
        elsif ($_=~m/X \= Port Security Entry \$ \= Dot1x Security Entry/)&lt;br /&gt;
            {}&lt;br /&gt;
        elsif ($_=~m/VLAN  Dest MAC\/Route Des    \[CoS\]  Destination Ports or VCs \/ \[Protocol Type\]/)&lt;br /&gt;
            {}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
        ######################################################################&lt;br /&gt;
        ####################sh mac-address-table | inc Fa0/ output############&lt;br /&gt;
        ######################################################################&lt;br /&gt;
        #Get specific line from sh mac-address-table | inc Fa0/ output&lt;br /&gt;
        #    1    0007.e95a.57e8    DYNAMIC     Fa0/2&lt;br /&gt;
        elsif ($_=~m/^(.+)    ([0-9a-f][0-9a-f][0-9a-f][0-9a-f]).([0-9a-f][0-9a-f][0-9a-f][0-9a-f]).([0-9a-f][0-9a-f][0-9a-f][0-9a-f])    (DYNAMIC)     (.*)/)&lt;br /&gt;
            {&lt;br /&gt;
            $MACADDRESS=&amp;quot;$2.$3.$4&amp;quot;;&lt;br /&gt;
            print OUT &amp;quot;sh arp \| inc $MACADDRESS\n&amp;quot;;&lt;br /&gt;
            $VLAN=$1;&lt;br /&gt;
            $CONNECTIONTYPE=$5;&lt;br /&gt;
            $PORTS=$6;&lt;br /&gt;
            print COMBINED &amp;quot;$SWITCHNAME,$MACADDRESS,$CONNECTIONTYPE,$VLAN,$PORTS\n&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
        ######################################################################&lt;br /&gt;
        #####################show mac-address-table###########################&lt;br /&gt;
        ######################################################################&lt;br /&gt;
        # All    0100.0cdd.dddd    STATIC      CPU&lt;br /&gt;
        #   1    000f.1fd3.d85a    DYNAMIC     Fa0/14&lt;br /&gt;
        elsif ($_=~m/^(.+)    ([0-9a-f][0-9a-f][0-9a-f][0-9a-f]).([0-9a-f][0-9a-f][0-9a-f][0-9a-f]).([0-9a-f][0-9a-f][0-9a-f][0-9a-f])    (STATIC)    (.*)/)&lt;br /&gt;
            {&lt;br /&gt;
            $MACADDRESS=&amp;quot;$2.$3.$4&amp;quot;;&lt;br /&gt;
            print OUT &amp;quot;sh arp \| inc $MACADDRESS\n&amp;quot;;&lt;br /&gt;
            $VLAN=$1;&lt;br /&gt;
            $CONNECTIONTYPE=$5;&lt;br /&gt;
            $PORTS=$6;&lt;br /&gt;
            print COMBINED &amp;quot;$SWITCHNAME,$MACADDRESS,$CONNECTIONTYPE,$VLAN,$PORTS\n&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
        &lt;br /&gt;
        #### VLAN  Dest MAC/Route Des    [CoS]  Destination Ports or VCs / [Protocol Type] &lt;br /&gt;
        ###----  ------------------    -----  -------------------------------------------&lt;br /&gt;
        ##1     00-01-e6-4b-59-d1             2/7 [ALL]&lt;br /&gt;
        &lt;br /&gt;
        elsif ($_=~m/^(.+) ([0-9a-f][0-9a-f])-([0-9a-f][0-9a-f])-([0-9a-f][0-9a-f])-([0-9a-f][0-9a-f])-([0-9a-f][0-9a-f])-([0-9a-f][0-9a-f]) (.*) (.*)\/(.*) (.*)/)&lt;br /&gt;
            {&lt;br /&gt;
            $MACADDRESS=&amp;quot;$2$3.$4$5.$6$7&amp;quot;;&lt;br /&gt;
            print OUT &amp;quot;sh arp \| inc $MACADDRESS\n&amp;quot;;&lt;br /&gt;
            $VLAN=$1;&lt;br /&gt;
            $CONNECTIONTYPE=&amp;quot;N/A&amp;quot;;&lt;br /&gt;
            my $tmpfa=$9;&lt;br /&gt;
            if ($tmpfa==2)&lt;br /&gt;
                {&lt;br /&gt;
                $tmpfa=0;&lt;br /&gt;
                }&lt;br /&gt;
            $PORTS=&amp;quot;Fa$tmpfa/$10&amp;quot;;&lt;br /&gt;
            #print &amp;quot;$_\n&amp;quot;;   &lt;br /&gt;
            print COMBINED &amp;quot;$SWITCHNAME,$MACADDRESS,$CONNECTIONTYPE,$VLAN,$PORTS\n&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
        &lt;br /&gt;
        else {print &amp;quot;$_\n&amp;quot;;}&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Router Input==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
&lt;br /&gt;
#### GET SWITCH INFO #####&lt;br /&gt;
&lt;br /&gt;
my $SWITCH_IN=&amp;quot;scannedswitches.csv&amp;quot;;&lt;br /&gt;
my $out=&amp;quot;scannedrouter.csv&amp;quot;;&lt;br /&gt;
my $checkip=();&lt;br /&gt;
my $INFO=&amp;quot;Matched Output.csv&amp;quot;;&lt;br /&gt;
my $DEVICENAME=();&lt;br /&gt;
&lt;br /&gt;
open SWITCH_IN, $SWITCH_IN or die &amp;quot;Cannot open $SWITCH_IN for read :$!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
while(&amp;lt;SWITCH_IN&amp;gt;)&lt;br /&gt;
   		{&lt;br /&gt;
        $temp=$_;&lt;br /&gt;
        chop ($temp);                #REMOVE ANY NEWLINE&lt;br /&gt;
        @SWITCH_ALL= split(/,/, $temp);   #Split&lt;br /&gt;
        &lt;br /&gt;
        push @SWITCH_NAME, $SWITCH_ALL[0];&lt;br /&gt;
        push @SWITCH_MACADDRESS, $SWITCH_ALL[1];&lt;br /&gt;
        push @SWITCH_TYPE, $SWITCH_ALL[2];&lt;br /&gt;
        push @SWITCH_VLAN, $SWITCH_ALL[3];&lt;br /&gt;
        push @SWITCH_PORT, $SWITCH_ALL[4];&lt;br /&gt;
        &lt;br /&gt;
        $SWITCH_TOTAL++;                &lt;br /&gt;
        }&lt;br /&gt;
close SWITCH_IN;&lt;br /&gt;
&lt;br /&gt;
opendir(DIR, &amp;quot;./router_in&amp;quot;);&lt;br /&gt;
my @files = grep(/\.txt$/,readdir(DIR));&lt;br /&gt;
closedir(DIR);&lt;br /&gt;
&lt;br /&gt;
my $LOGFILE_IN=();&lt;br /&gt;
&lt;br /&gt;
my $ROUTERNAME=();&lt;br /&gt;
my $ROUTERCONNECTION_TYPE=();&lt;br /&gt;
my $ROUTER_MACADDRESS=();&lt;br /&gt;
my $ROUTER_TIME=();&lt;br /&gt;
my $ROUTER_ARPA=();&lt;br /&gt;
my $ROUTER_IP=();&lt;br /&gt;
my $ROUTER_PORTSETTING=();&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;_________________________________________\n\n&amp;quot;;&lt;br /&gt;
print &amp;quot;Reading in Router Data\n&amp;quot;;&lt;br /&gt;
print &amp;quot;_________________________________________\n\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
open OUT, &amp;quot;&amp;gt;$out&amp;quot; or die &amp;quot;Cannot open $out for write :$!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
foreach $file (@files) &lt;br /&gt;
    {&lt;br /&gt;
	$LOGFILE_IN=&amp;quot;router_in/$file&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	open LOGFILE_IN, $LOGFILE_IN or die &amp;quot;Cannot open $LOGFILE_IN for read :$!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
    while (&amp;lt;LOGFILE_IN&amp;gt;) &lt;br /&gt;
	    {&lt;br /&gt;
        #Get Router Name&lt;br /&gt;
        #RA80(SVH)#sh arp | inc 0000.f843.6c6f &lt;br /&gt;
        if ($_=~m/(.+)#(.+)/)&lt;br /&gt;
            {&lt;br /&gt;
            $ROUTERNAME=$1;&lt;br /&gt;
            }&lt;br /&gt;
        ######################################################################&lt;br /&gt;
        ####################sh arp ############&lt;br /&gt;
        ######################################################################&lt;br /&gt;
        #Get specific line from sh arp output&lt;br /&gt;
        #Internet  192.168.111.119         3   0007.e95a.57e8  ARPA   FastEthernet0/0&lt;br /&gt;
        #Internet  192.168.117.1           -   000f.2405.d141  ARPA   FastEthernet0/1.117&lt;br /&gt;
#^(.*)  ([0-9][0-9][0-9]).([0-9][0-9][0-9]).([0-9][0-9][0-9]).([0-9][0-9][0-9])        (\d*)   ([0-9a-f][0-9a-f][0-9a-f][0-9a-f]).([0-9a-f][0-9a-f][0-9a-f][0-9a-f]).([0-9a-f][0-9a-f][0-9a-f][0-9a-f])  (.*)   (.*)&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        elsif ($_=~m/^(.*)  (\d+)\.(\d+)\.(\d+)\.(\d+)  (.*)   ([0-9a-f][0-9a-f][0-9a-f][0-9a-f]).([0-9a-f][0-9a-f][0-9a-f][0-9a-f]).([0-9a-f][0-9a-f][0-9a-f][0-9a-f])(.*) (.+)/)&lt;br /&gt;
            {&lt;br /&gt;
            $ROUTERCONNECTION_TYPE=$1;&lt;br /&gt;
            $ROUTER_IP=&amp;quot;$2.$3.$4.$5&amp;quot;;&lt;br /&gt;
            $ROUTER_MACADDRESS=&amp;quot;$7.$8.$9&amp;quot;;&lt;br /&gt;
            $ROUTER_TIME=$6;&lt;br /&gt;
            $ROUTER_ARPA=$11;&lt;br /&gt;
            $ROUTER_PORTSETTING=$10;&lt;br /&gt;
            print OUT &amp;quot;$ROUTERNAME,$ROUTERCONNECTION_TYPE,$ROUTER_IP,$ROUTER_MACADDRESS,$ROUTER_TIME,$ROUTER_ARPA,$ROUTER_PORTSETTING\n&amp;quot;;&lt;br /&gt;
            &lt;br /&gt;
            push @ROUTER_NAME, $ROUTERNAME;&lt;br /&gt;
            push @ROUTER_CONN, $ROUTERCONNECTION_TYPE;&lt;br /&gt;
            push @ROUTER_IPADDRESS, $ROUTER_IP;&lt;br /&gt;
            push @ROUTER_MAC, $ROUTER_MACADDRESS;&lt;br /&gt;
            push @ROUTER_UPTIME, $ROUTER_TIME;&lt;br /&gt;
            push @ROUTER_ARPALIST, $ROUTER_ARPA;&lt;br /&gt;
            push @ROUTER_PORT, $ROUTER_PORTSETTING;&lt;br /&gt;
&lt;br /&gt;
            &lt;br /&gt;
            }&lt;br /&gt;
        else&lt;br /&gt;
        {print&amp;quot;$_\n&amp;quot;;}&lt;br /&gt;
            &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
########## DONE GATHERING INFORMATION ##########&lt;br /&gt;
################################################&lt;br /&gt;
&lt;br /&gt;
########## Start Cross Matchnig ################&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;_________________________________________\n\n&amp;quot;;&lt;br /&gt;
print &amp;quot;Cross Matching Router Data &amp;amp; Resolving DNS\n&amp;quot;;&lt;br /&gt;
print &amp;quot;_________________________________________\n\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
### ELEMENTS ###&lt;br /&gt;
&lt;br /&gt;
        # @SWITCH_NAME&lt;br /&gt;
        # @SWITCH_MACADDRESS&lt;br /&gt;
        # @SWITCH_TYPE&lt;br /&gt;
        # @SWITCH_VLAN&lt;br /&gt;
        # @SWITCH_PORT&lt;br /&gt;
&lt;br /&gt;
        # @ROUTER_NAME&lt;br /&gt;
        # @ROUTER_CONN&lt;br /&gt;
        # @ROUTER_IPADDRESS&lt;br /&gt;
        # @ROUTER_MAC&lt;br /&gt;
        # @ROUTER_UPTIME&lt;br /&gt;
        # @ROUTER_ARPALIST&lt;br /&gt;
        # @ROUTER_PORT&lt;br /&gt;
        &lt;br /&gt;
open INFO, &amp;quot;&amp;gt;$INFO&amp;quot; or die &amp;quot;Cannot open $INFO for write :$!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
print INFO &amp;quot;SWITCH_NAME,SWITCH_PORT,DEVICENAME,ROUTER_IPADDRESS,SWITCH_MACADDRESS,ROUTER_MAC,SWITCH_TYPE,SWITCH_VLAN,ROUTER_UPTIME,ROUTER_CONN\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
my $SC=0;  #switch count&lt;br /&gt;
&lt;br /&gt;
        foreach $SWITCH_MACADDRESS (@SWITCH_MACADDRESS)&lt;br /&gt;
            {&lt;br /&gt;
            $ARRAYSIZE = scalar (@ROUTER_MAC); &lt;br /&gt;
           &lt;br /&gt;
            for ($i=0; $i &amp;lt; $ARRAYSIZE; $i++)&lt;br /&gt;
                {&lt;br /&gt;
                if ($ROUTER_MAC[$i] eq $SWITCH_MACADDRESS)&lt;br /&gt;
                    {&lt;br /&gt;
                    #print &amp;quot;$SWITCH_MACADDRESS = $ROUTER_MAC[$i]\n&amp;quot;;&lt;br /&gt;
                    $checkip=$ROUTER_IPADDRESS[$i];&lt;br /&gt;
                    $DEVICENAME=&amp;quot;&amp;quot;;&lt;br /&gt;
                    &amp;amp;IPLOOKUP($checkip);&lt;br /&gt;
                    print INFO &amp;quot;$SWITCH_NAME[$SC],$SWITCH_PORT[$SC],$DEVICENAME,$ROUTER_IPADDRESS[$i],$SWITCH_MACADDRESS[$SC],$ROUTER_MAC[$i],$SWITCH_TYPE[$SC],$SWITCH_VLAN[$SC],$ROUTER_UPTIME[$I],$ROUTER_CONN[$I]\n&amp;quot;;&lt;br /&gt;
                    &lt;br /&gt;
                    last; #Break from the loop&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                $SC++;&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            &lt;br /&gt;
            &lt;br /&gt;
&lt;br /&gt;
#########&lt;br /&gt;
&lt;br /&gt;
sub IPLOOKUP&lt;br /&gt;
    {&lt;br /&gt;
    use Net::DNS;&lt;br /&gt;
    use NetAddr::IP;&lt;br /&gt;
        &lt;br /&gt;
    my $ip = new NetAddr::IP (shift) || die &amp;quot;Unable to create NetAddr::IP object\n&amp;quot;;&lt;br /&gt;
    my $res = Net::DNS::Resolver-&amp;gt;new;&lt;br /&gt;
    my $num = $ip-&amp;gt;num();&lt;br /&gt;
        &lt;br /&gt;
    for (my $i=0; $i&amp;lt;=$num; ++$i) {&lt;br /&gt;
        &lt;br /&gt;
    my $ip_address = $checkip;&lt;br /&gt;
        &lt;br /&gt;
          if ($ip_address) &lt;br /&gt;
            {&lt;br /&gt;
            my $query = $res-&amp;gt;search(&amp;quot;$ip_address&amp;quot;);&lt;br /&gt;
            if ($query) &lt;br /&gt;
                {&lt;br /&gt;
                foreach my $rr ($query-&amp;gt;answer) &lt;br /&gt;
                    {&lt;br /&gt;
                    next unless $rr-&amp;gt;type eq &amp;quot;PTR&amp;quot;;&lt;br /&gt;
                    #print &amp;quot;$ip_address,&amp;quot;,$rr-&amp;gt;ptrdname, &amp;quot;\n&amp;quot;;&lt;br /&gt;
                    $DEVICENAME=$rr-&amp;gt;ptrdname;&lt;br /&gt;
                    }&lt;br /&gt;
                } &lt;br /&gt;
            else &lt;br /&gt;
                {&lt;br /&gt;
                #print &amp;quot;$ip_address,&amp;quot;,$res-&amp;gt;errorstring,&amp;quot;\n&amp;quot;;&lt;br /&gt;
                }&lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
          ++$ip;&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rabbi Bob</name></author>
	</entry>
</feed>