<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Artisan Numérique</title>
  <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1611"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/node/1611/atom/feed"/>
  <id>http://artisan.karma-lab.net/node/1611/atom/feed</id>
  <updated>2008-08-07T00:11:24+02:00</updated>
  <entry>
    <title>Logger SNMP pour linksys</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1611" />
    <id>http://artisan.karma-lab.net/node/1611</id>
    <published>2008-08-07T00:11:24+02:00</published>
    <updated>2008-08-07T00:11:24+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Perl" />
    <category term="Aucun" />
    <category term="OK" />
    <category term="Snipet" />
    <summary type="html"><![CDATA[<p>Un logger smnp pour les linksys</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Un logger smnp pour les linksys</p>
<!--break-->

  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="kw2">use</span> strict<span class="sy0">;</span><br />
<span class="kw2">use</span> warnings<span class="sy0">;</span><br />
<br />
<span class="kw2">use</span> IO<span class="sy0">::</span><span class="me2">Socket</span><span class="sy0">;</span><br />
<span class="kw2">use</span> FileHandle<span class="sy0">;</span><br />
<span class="kw2">use</span> File<span class="sy0">::</span><span class="me2">Temp</span> <span class="co2">qw/ tempfile tempdir /</span><span class="sy0">;</span><br />
<span class="kw2">use</span> File<span class="sy0">::</span><span class="me2">Copy</span><span class="sy0">;</span><br />
<br />
<br />
<span class="sy0">&amp;</span>bindServer<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="kw2">sub</span> bindServer<br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="co1"># Open &amp; Listen</span><br />
&nbsp; <span class="kw1">my</span> <span class="re0">$serverSocket</span> <span class="sy0">=</span> <span class="kw2">new</span> IO<span class="sy0">::</span><span class="me2">Socket</span><span class="sy0">::</span><span class="me2">INET</span><span class="br0">&#40;</span><br />
&nbsp; &nbsp; LocalHost <span class="sy0">=&gt;</span> <span class="st0">'192.168.0.101'</span><span class="sy0">,</span><br />
&nbsp; &nbsp; LocalPort <span class="sy0">=&gt;</span> <span class="st0">'162'</span><span class="sy0">,</span><br />
&nbsp; &nbsp; Proto <span class="sy0">=&gt;</span> <span class="st0">'udp'</span><span class="sy0">,</span><br />
<span class="co1"># &nbsp; Listen =&gt; SOMAXCONN,</span><br />
&nbsp; &nbsp; Type <span class="sy0">=&gt;</span> SOCK_DGRAM<span class="sy0">,</span><br />
&nbsp; &nbsp; Reuse <span class="sy0">=&gt;</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; <span class="re0">$serverSocket</span> <span class="kw1">or</span> <a target="blank" href="http://perldoc.perl.org/functions/die.html"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">&quot;Unable to bind :$!&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; <span class="kw1">my</span><span class="br0">&#40;</span><span class="re0">$clientSocket</span><span class="sy0">,</span> <span class="re0">$c_addr</span><span class="sy0">,</span> <span class="re0">$buffer</span><span class="sy0">,</span><span class="re0">$clientAddress</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; <span class="co1"># Waiting for call...</span><br />
&nbsp; <a target="blank" href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a><span class="br0">&#40;</span> <span class="st0">&quot;Listening ...&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$clientSocket</span><span class="sy0">,</span> <span class="re0">$clientAddress</span><span class="br0">&#41;</span> <span class="sy0">=</span> <span class="re0">$serverSocket</span><span class="sy0">-&gt;</span><span class="me1">accept</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="co1"># Get &quot;client&quot; identity</span><br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="br0">&#40;</span><span class="re0">$clientPort</span><span class="sy0">,</span> <span class="re0">$c_ip</span><span class="br0">&#41;</span> <span class="sy0">=</span>sockaddr_in<span class="br0">&#40;</span><span class="re0">$clientAddress</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="re0">$clientIP</span> <span class="sy0">=</span> inet_ntoa<span class="br0">&#40;</span><span class="re0">$c_ip</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">my</span> <span class="re0">$clientHost</span> <span class="sy0">=</span><a target="blank" href="http://perldoc.perl.org/functions/gethostbyaddr.html"><span class="kw3">gethostbyaddr</span></a><span class="br0">&#40;</span><span class="re0">$c_ip</span><span class="sy0">,</span> AF_INET<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span><a target="blank" href="http://perldoc.perl.org/functions/defined.html"><span class="kw3">defined</span></a> <span class="br0">&#40;</span><span class="re0">$buffer</span> <span class="sy0">=</span> <span class="sy0">&lt;</span><span class="re0">$clientSocket</span><span class="sy0">&gt;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="re0">$buffer</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span>
  </div>
  
  </div>    ]]></content>
  </entry>
</feed>
