<?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>More Than Technical &#187; Networking</title>
	<atom:link href="http://www.morethantechnical.com/category/networking/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.morethantechnical.com</link>
	<description>On software, code, the internet and more.</description>
	<lastBuildDate>Mon, 06 Feb 2012 23:48:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>VoIP for Android is in town</title>
		<link>http://www.morethantechnical.com/2009/07/16/voip-for-android-is-in-town/</link>
		<comments>http://www.morethantechnical.com/2009/07/16/voip-for-android-is-in-town/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 10:19:20 +0000</pubDate>
		<dc:creator>Arnon</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile phones]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[Voip]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[edge]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[sip]]></category>
		<category><![CDATA[telephony]]></category>

		<guid isPermaLink="false">http://www.morethantechnical.com/?p=348</guid>
		<description><![CDATA[Well, At least when it comes to SIP communication Update: Well, there has been a great leap in Android support with VoIP. Skype has released a decent client for most Android based phones (with the exception of Galaxy S, and USA Based clients cannot use 3G), and I have discovered another excellent VoIP client for [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.morethantechnical.com/wp-content/uploads/2009/07/071609_1019_VoIPforAndr1.png" alt="" /></p>
<p><em>Well, At least when it comes to SIP communication</em></p>
<p><em><strong>Update: </strong></em><br />
<em>Well, there has been a great leap in Android support with VoIP. Skype has released a decent client for most Android based phones (with the exception of Galaxy S, and USA Based clients cannot use 3G), and I have discovered another excellent VoIP client for Android called</em><em><strong> cSipSimple</strong> (If you liked Sipdroid I advise you to check this one out as well. It&#8217;s my current default).</em><br />
<em>Other than that, the upcoming Android 2.3 is said to have <strong>native SIP support</strong> which is extremely cool<br />
Having said all that, enjoy my original post <img src='http://www.morethantechnical.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </em></p>
<p>A Smartphone, as its name implies is… eventually… a smart phone! Exactly! That&#8217;s what I thought. And as one I should have the ability to run any software that is compatible with its hardware and software.</p>
<p>That turns out to be almost true. VoIP is off the limit.</p>
<p>And it is not because the device cannot handle it, Far from it. It is because mobile companies are afraid for their revenues. When people are using VoIP on their infrastructure, it takes away money from them. Oh you poor phone companies. My heart goes out for you.</p>
<p>And after all the tears run out, I went out to look for some VoIP that DOES work for me. SKYPE of course was off limit. Even though there is &#8220;<a href="http://www.skype.com/intl/en/download/skype/mobile/">Skype Lite Beta</a>&#8221; for Android, it does not support Skype-to-Skype user call. And why should it? Skype is an excellent IM software and VoIP is only secondary (wink).</p>
<p>I then stumbled upon <a href="http://sipdroid.org/">SipDroid</a>. Sip droid is a SIP client for android. This is great if you have a SIP account provider. I for instance, have an account which runs on asterisk server (open source IPBX system).</p>
<p>I got the installation of <a href="http://sipdroid.org/">SipDroid</a> at once! And installed on my phone to try it.</p>
<p>What can I say? It has huge potential. But it is only fully compatible with its mother ship, which is <a href="http://www.pbxes.com">pbxes.com</a>. Luckily (but of course – not a solution) they allow you to enter your own sip account there so you can connect to it through them (like connecting to your neighbor through china… but it works). Although pbxes.com has a strange certification error they claim is negligible.</p>
<p>So, using it directly with asterisk server causes poor outgoing audio which is lame. I&#8217;m sure some people might be able to tweak their server to handle it directly and properly but I didn&#8217;t manage to do that… nor found proper idea sharing on that subject.</p>
<p>But this client is still in beta stage so I honestly believe it will kick ass when it&#8217;s complete.</p>
<p>It&#8217;s no Skype, and I hope some Skype-like client like <a href="http://www.fring.com/">Fring</a> will port soon for Android, but until then, it&#8217;s better than nothing.</p>
<p>Two important notes if you want to use it:</p>
<ol>
<li>If you are planning to download it from the Android Market – You will get a limited version which disables usage of VoIP over 3G/EDGE. So if you want the full one then download it directly from the project page.</li>
<li>VoIP data, is currently 1.20mb per minute, so watch your data plan</li>
</ol>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.morethantechnical.com%2F2009%2F07%2F16%2Fvoip-for-android-is-in-town%2F&amp;title=VoIP%20for%20Android%20is%20in%20town" id="wpa2a_2"><img src="http://www.morethantechnical.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.morethantechnical.com/2009/07/16/voip-for-android-is-in-town/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The proper way to run a remote process</title>
		<link>http://www.morethantechnical.com/2009/04/13/the-proper-way-to-run-a-remote-process/</link>
		<comments>http://www.morethantechnical.com/2009/04/13/the-proper-way-to-run-a-remote-process/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 10:06:01 +0000</pubDate>
		<dc:creator>Arnon</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Recommended]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[Windows scripting]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[psexec]]></category>
		<category><![CDATA[pskill]]></category>
		<category><![CDATA[pstools]]></category>
		<category><![CDATA[recmommend]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://www.morethantechnical.com/?p=233</guid>
		<description><![CDATA[This is the story of my journey to find a way to run a process (or a program on a remote pc) This wasn&#8217;t an easy thing at all&#8230; Overall, I thought, this should be an easy thing to do. I found this C# code on a Microsoft forums I tried this code, not after [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.morethantechnical.com/wp-content/uploads/2009/04/psexec.jpg" rel="lightbox[233]"></a><a href="http://www.morethantechnical.com/wp-content/uploads/2009/04/psexec.jpg" rel="lightbox[233]"></a><a href="http://www.morethantechnical.com/wp-content/uploads/2009/04/psexec.jpg" rel="lightbox[233]"></a>This is the story of my journey to find a way to run a process (or a program on a remote pc)<br />
This wasn&#8217;t an easy thing at all&#8230;</p>
<p>Overall, I thought, this should be an easy thing to do.<br />
I found this C# code on a Microsoft forums</p>
<pre class="brush: csharp; title: ; notranslate">
object[] theProcessToRun = { &quot;notepad.exe&quot; };
ConnectionOptions theConnection = new ConnectionOptions();
theConnection.Username = &quot;username&quot;;
theConnection.Password = &quot;password&quot;;
ManagementScope theScope = new ManagementScope(&quot;&lt;\\\\&quot; + IP + &quot;\\root\\cimv2&quot;, theConnection);
ManagementClass theClass = new ManagementClass(theScope, new ManagementPath(&quot;Win32_Process&quot;), new ObjectGetOptions());
theClass.InvokeMethod(&quot;Create&quot;, theProcessToRun);
</pre>
<p>I tried this code, not after forgetting to disable the firewall on the remote computer &#8211; a big downside but I guess if I had gone with it I&#8217;d hunt a way to stable port to unblock in the firewall.</p>
<p> </p>
<p>Then I found the big downside (which can be an upside to some of you):<br />
The remote process this way will never have a GUI window opened (In this example, a process of notepad will be opened in the background).<br />
This can be a big advantage to system admins which want to run scripts.</p>
<p> </p>
<p>Ok, back to the quest.</p>
<p><span id="more-233"></span></p>
<p>A little more digging came up with a nice set of tools called <a href="http://technet.microsoft.com/en-us/sysinternals/bb896649.aspx" target="_blank">PsTools</a><br />
This is a very handy set of tools, that can be used to automate any local or remote tasks.<br />
And the upside to this thing: You can make the GUI window appear !</p>
<p>Sidenote &#8211; of course you need the username and password of an administrator to do all those things </p>
<p>Ok, back to the PsTools&#8230;<br />
It has a utility inside called PsExec (guess what it does&#8230; )</p>
<p> </p>
<p>The command line for this is:<br />
<strong>PsExec \\&lt;remote-pc&gt; -u &lt;username&gt; -p &lt;password&gt; -d -i &lt;process name&gt;</strong><br />
-d = don&#8217;t wait for the process to end<br />
-i = show the GUI window</p>
<p><img class="aligncenter size-full wp-image-235" title="psexec" src="http://www.morethantechnical.com/wp-content/uploads/2009/04/psexec.jpg" alt="psexec" width="669" height="199" /></p>
<p>And that&#8217;s where the Windows OS gave me hell:</p>
<p> </p>
<p>It appears that PsTools use an administrative hidden share named ADMIN$</p>
<p>You can see if you have one by right-clicking on &#8220;My Computer&#8221;, then selecting &#8220;Manage&#8221;, then &#8220;Shared folders&#8221;, and &#8220;Shares&#8221;</p>
<p>This all refers to Windows XP Proffesional</p>
<p>Unfortunately I deleted this share a while ago (Honestly? I don&#8217;t remember why)<br />
So my quest had turned to fix this issue&#8230;</p>
<p> </p>
<p>To make a long story short:<br />
With XP Pro, you can manually create this share with this command (in the remote machine)<br />
<strong>net share admin$</strong> </p>
<p>And make it permanent by adding these registry keys in the remote machine (with the value of 1):<br />
<strong>HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters</strong><br />
AutoShareWks (REG_DWORD)<br />
AutoShareServer (REG_DWORD)</p>
<p>Also, if you still have connection problems you can clear out your local active connections with<br />
<strong>net use * /delete</strong> </p>
<p>Anyways, I hope this post will help you get by all the first difficulties I ran into&#8230;</p>
<p>All in all, this is a great thing to have as a network administrator</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.morethantechnical.com%2F2009%2F04%2F13%2Fthe-proper-way-to-run-a-remote-process%2F&amp;title=The%20proper%20way%20to%20run%20a%20remote%20process" id="wpa2a_4"><img src="http://www.morethantechnical.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.morethantechnical.com/2009/04/13/the-proper-way-to-run-a-remote-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scanning your entire LAN for MAC Addresses</title>
		<link>http://www.morethantechnical.com/2009/01/26/scanning-your-entire-lan-for-mac-addresses/</link>
		<comments>http://www.morethantechnical.com/2009/01/26/scanning-your-entire-lan-for-mac-addresses/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 09:14:55 +0000</pubDate>
		<dc:creator>Arnon</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[lan]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://www.morethantechnical.com/?p=118</guid>
		<description><![CDATA[Not too long ago, I wrote a network administration utility with specific needs. One of the needs was to scan all the LAN pool for MAC addresses. The code will look at your active network adapters, calculate start and end IP according to your address and netmask, and query all the IPs within that range [...]]]></description>
			<content:encoded><![CDATA[<p>Not too long ago, I wrote a network administration utility with specific needs.</p>
<p>One of the needs was to scan all the LAN pool for MAC addresses.</p>
<p>The code will look at your active network adapters, calculate start and end IP according to your address and netmask,</p>
<p>and query all the IPs within that range for their MAC address.</p>
<p>The code is written in C#, and it&#8217;s basically going over the whole range in a nested loop.</p>
<p>If you find this useful, you are welcome to use the code: <span id="more-118"></span></p>
<pre class="brush: csharp; title: ; notranslate">
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.NetworkInformation;
using System.Net;
using System.Net.Sockets;
using System.Text.RegularExpressions;

private static void StartScan()
{
foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{
if (ni.OperationalStatus == OperationalStatus.Down) continue;
if (ni.GetIPProperties().GatewayAddresses.Count == 0) continue;
foreach (UnicastIPAddressInformation uipi in ni.GetIPProperties().UnicastAddresses)
{
if (uipi.IPv4Mask == null) continue;
System.Console.WriteLine(&quot;IP: &quot; + uipi.Address + &quot;, Netmask: &quot; + uipi.IPv4Mask);
String[] IPParts = uipi.Address.ToString().Split('.');
String[] NetmaskParts = uipi.IPv4Mask.ToString().Split('.');
String StartIP;
StartIP = (int.Parse(IPParts[0]) &amp;amp;amp;amp; (int.Parse(NetmaskParts[0]))) + &quot;.&quot; +
(int.Parse(IPParts[1]) &amp;amp;amp;amp; (int.Parse(NetmaskParts[1]))) + &quot;.&quot; +
(int.Parse(IPParts[2]) &amp;amp;amp;amp; (int.Parse(NetmaskParts[2]))) + &quot;.&quot; +
(int.Parse(IPParts[3]) &amp;amp;amp;amp; (int.Parse(NetmaskParts[3])));
String EndIP;
String[] StartIPParts = StartIP.Split('.');
EndIP = (int.Parse(StartIPParts[0]) + 255 - (int.Parse(NetmaskParts[0]))) + &quot;.&quot; +
(int.Parse(StartIPParts[1]) + 255 - (int.Parse(NetmaskParts[1]))) + &quot;.&quot; +
(int.Parse(StartIPParts[2]) + 255 - (int.Parse(NetmaskParts[2]))) + &quot;.&quot; +
(int.Parse(StartIPParts[3]) + 255 - (int.Parse(NetmaskParts[3])));
System.Console.WriteLine(&quot;StartIP: &quot; + StartIP);
System.Console.WriteLine(&quot;EndIP : &quot; + EndIP);
String ItemIP, ItemMAC, ItemName;
for (int o0 = int.Parse(StartIP.Split('.')[0]); o0 &lt;= int.Parse(EndIP.Split('.')[0]); o0++)
for (int o1 = int.Parse(StartIP.Split('.')[1]); o1 &lt;= int.Parse(EndIP.Split('.')[1]); o1++)
for (int o2 = int.Parse(StartIP.Split('.')[2]); o2 &lt;= int.Parse(EndIP.Split('.')[2]); o2++)
for (int o3 = int.Parse(StartIP.Split('.')[3]); o3 &lt;= int.Parse(EndIP.Split('.')[3]); o3++)
{
if ((o3 == 0) || (o3 == 255)) continue;
String MAC = GetMacFromIP(IPAddress.Parse(o0 + &quot;.&quot; + o1 + &quot;.&quot; + o2 + &quot;.&quot; + o3));
if (MAC == &quot;00:00:00:00:00:00&quot;) continue;
ItemIP = o0 + &quot;.&quot; + o1 + &quot;.&quot; + o2 + &quot;.&quot; + o3;
ItemMAC = GetMacFromIP(IPAddress.Parse(o0 + &quot;.&quot; + o1 + &quot;.&quot; + o2 + &quot;.&quot; + o3));
String[] Item = new String[2];
Item[0] = ItemMAC;
Item[1] = ItemIP;
/*
* You can add Item[] to any collection
*/
Console.WriteLine(Item[0] + &quot; --&gt; &quot; + Item[1]);
}
}
}
System.Console.WriteLine(&quot;Scan Ended&quot;);
}

[System.Runtime.InteropServices.DllImport(&quot;Iphlpapi.dll&quot;, EntryPoint = &quot;SendARP&quot;)]
internal extern static Int32 SendArp(Int32 destIpAddress, Int32 srcIpAddress, byte[] macAddress, ref Int32 macAddressLength);

public static String GetMacFromIP(System.Net.IPAddress IP)
{
if (IP.AddressFamily != AddressFamily.InterNetwork)
throw new ArgumentException(&quot;suppoerts just IPv4 addresses&quot;);

Int32 addrInt = IpToInt(IP);
Int32 srcAddrInt = IpToInt(IP);

byte[] mac = new byte[6]; // 48 bit
int length = mac.Length;
int reply = SendArp(addrInt, srcAddrInt, mac, ref length);

String rawMac = new System.Net.NetworkInformation.PhysicalAddress(mac).ToString();
String newMac = Regex.Replace(rawMac, &quot;(..)(..)(..)(..)(..)(..)&quot;, &quot;$1:$2:$3:$4:$5:$6&quot;);

return newMac;
}

private static Int32 IpToInt(System.Net.IPAddress IP)
{
byte[] bytes = IP.GetAddressBytes();
return BitConverter.ToInt32(bytes, 0);
}
</pre>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.morethantechnical.com%2F2009%2F01%2F26%2Fscanning-your-entire-lan-for-mac-addresses%2F&amp;title=Scanning%20your%20entire%20LAN%20for%20MAC%20Addresses" id="wpa2a_6"><img src="http://www.morethantechnical.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.morethantechnical.com/2009/01/26/scanning-your-entire-lan-for-mac-addresses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

