<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Riders Of The Bit &#187; example</title>
	<atom:link href="http://www.ridersofthebit.net/blog/index.php/tag/example/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ridersofthebit.net/blog</link>
	<description>a blog by Oscar Sánchez, now available version 3.2</description>
	<lastBuildDate>Fri, 06 Aug 2010 14:10:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Conocer la IP asociada a un interfaz de red (solo para Linux)</title>
		<link>http://www.ridersofthebit.net/blog/index.php/2008/10/03/conocer-la-ip-asociada-a-un-interfaz-de-red-solo-para-linux/</link>
		<comments>http://www.ridersofthebit.net/blog/index.php/2008/10/03/conocer-la-ip-asociada-a-un-interfaz-de-red-solo-para-linux/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 22:38:49 +0000</pubDate>
		<dc:creator>ocell</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[ioctl]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[net interfaces]]></category>
		<category><![CDATA[SIOCGIFADDR]]></category>

		<guid isPermaLink="false">http://www.ridersofthebit.net/blog/?p=125</guid>
		<description><![CDATA[Transcribo una receta, de código Python, publicada en ActiveState Code por Paul Cannon, donde se ve como conocer la dirección IP asociada a un interfaz de red (bajo Linux) mediante la llamada a sistema ioctl SIOCGIFADDR.

1
2
3
4
5
6
7
8
9
10
11
import socket
import fcntl
import struct
&#160;
def get_ip_address&#40;ifname&#41;:
    s = socket.socket&#40;socket.AF_INET, socket.SOCK_DGRAM&#41;
    return socket.inet_ntoa&#40;fcntl.ioctl&#40;
      [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Transcribo una receta, de código <strong>Python</strong>, publicada en <strong><a title="ActiveState Code" href="http://code.activestate.com/" target="_blank">ActiveState Code</a></strong> por <em><a title="Paul Cannon @ ActiveState Code" href="http://code.activestate.com/recipes/users/2551140/" target="_blank">Paul Cannon</a></em>, donde se ve como conocer la dirección IP asociada a un interfaz de red (bajo <em>Linux</em>) mediante la llamada a sistema <em><a title="&quot;i-o-control&quot;" href="http://en.wikipedia.org/wiki/Ioctl" target="_blank">ioctl</a></em> <strong>SIOCGIFADDR</strong>.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">socket</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">fcntl</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">struct</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> get_ip_address<span style="color: black;">&#40;</span>ifname<span style="color: black;">&#41;</span>:
    s = <span style="color: #dc143c;">socket</span>.<span style="color: #dc143c;">socket</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">socket</span>.<span style="color: black;">AF_INET</span>, <span style="color: #dc143c;">socket</span>.<span style="color: black;">SOCK_DGRAM</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #dc143c;">socket</span>.<span style="color: black;">inet_ntoa</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">fcntl</span>.<span style="color: black;">ioctl</span><span style="color: black;">&#40;</span>
        s.<span style="color: black;">fileno</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>,
        0x8915, <span style="color: #808080; font-style: italic;"># SIOCGIFADDR</span>
        <span style="color: #dc143c;">struct</span>.<span style="color: black;">pack</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'256s'</span>, ifname<span style="color: black;">&#91;</span>:<span style="color: #ff4500;">15</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
    <span style="color: black;">&#41;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">20</span>:<span style="color: #ff4500;">24</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p>Ejemplo de llamada:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">get_ip_address<span style="color: black;">&#40;</span><span style="color: #483d8b;">'lo'</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Con resultado: <strong>127.0.0.1</strong></p>
<p>Otro ejemplo de llamada:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">get_ip_address<span style="color: black;">&#40;</span><span style="color: #483d8b;">'eth0'</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Con resultado: <strong>192.168.50.19</strong></p>
<p>Tal y como comenta el autor, probablemente esta solución únicamente funcione bajo <em>Linux</em>, dada la dependencia de este con ciertas estructuras (tamaño, etc.) en <strong>C</strong> y donde <strong>SIOCGIFADDR</strong> es <strong>0&#215;8915</strong>. Incluso es probable que únicamente funcione bajo <em><strong>kernel</strong></em>s <strong>2.4</strong> y <strong>2.6</strong>. Bajo otras distribuciones de <em>Unix</em> puede ser que requiera algún ajuste; que si alguien sabe siempre será bienvenido.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ridersofthebit.net/blog/index.php/2008/10/03/conocer-la-ip-asociada-a-un-interfaz-de-red-solo-para-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL case-sensitive comparison over MySql</title>
		<link>http://www.ridersofthebit.net/blog/index.php/2008/06/04/sql-case-sensitive-comparison-over-mysql/</link>
		<comments>http://www.ridersofthebit.net/blog/index.php/2008/06/04/sql-case-sensitive-comparison-over-mysql/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 21:07:37 +0000</pubDate>
		<dc:creator>ocell</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[like binary]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[recipe]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.ridersofthebit.net/blog/?p=47</guid>
		<description><![CDATA[If someone is finding a way to do a case sensitive comparison in SQL (over MySql), below can find the recipe:
This one produces a True result:

1
SELECT 'A' = 'a';

The solution is doing the comparison with a = or LIKE and the BINARY clause:

2
SELECT 'A' LIKE BINARY 'a';

or

3
SELECT 'A' = BINARY 'a';

This produces a False result [...]]]></description>
			<content:encoded><![CDATA[<p>If someone is finding a way to do a case sensitive comparison in SQL (over MySql), below can find the recipe:</p>
<p>This one produces a <strong>True</strong> result:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #ff0000;">'A'</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'a'</span>;</pre></td></tr></table></div>

<p>The solution is doing the comparison with a <strong>=</strong> or <strong>LIKE</strong> and the <strong><span style="text-decoration: underline;">BINARY</span></strong> clause:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>2
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #ff0000;">'A'</span> <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #993333; font-weight: bold;">BINARY</span> <span style="color: #ff0000;">'a'</span>;</pre></td></tr></table></div>

<p>or</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>3
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #ff0000;">'A'</span> <span style="color: #66cc66;">=</span> <span style="color: #993333; font-weight: bold;">BINARY</span> <span style="color: #ff0000;">'a'</span>;</pre></td></tr></table></div>

<p>This produces a <strong>False</strong> result (good for case sensitive comparisons)</p>
<p>And be careful because this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>4
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #ff0000;">'A'</span> <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'a'</span>;</pre></td></tr></table></div>

<p>produces a <strong>True</strong> result.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ridersofthebit.net/blog/index.php/2008/06/04/sql-case-sensitive-comparison-over-mysql/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
