From: Mr. J. <mr_...@ya...> - 2013-12-14 19:46:26
|
Hi,thanks Alexander, I've put that condition: If ",localhost,127.0.0.1,".Contains("," + My.Settings.Server_Name.Trim.ToLower + ",") .................. EndIf I don't know if that is the best way thanks On Saturday, December 14, 2013 1:55 PM, Alexander Muylaert-Gelein <amu...@ho...> wrote: Hi This parses a firebird path and scans for "loopback" or computername. You just need to add all possible IP's from you local PC and localhost. good luck a private static void ReplaceLocalHost(ref string aServer) { s_OriginalDatabaseServer = aServer; if (System.Environment.MachineName.Equals(aServer, StringComparison.OrdinalIgnoreCase) || ("127.0.0.1".Equals(aServer, StringComparison.Ordinal))) { aServer = "localhost"; } } private static char[] s_Splitter = new char[] { ':' }; private static bool SplitServerAndPort(string aPart, out string aServer, out int aPort) { var p = aPart.IndexOf('/'); if (p >= 0) { aServer = aPart.Substring(0, p); if (int.TryParse(aPart.Substring(p + 1), out aPort)) { ReplaceLocalHost(ref aServer); return true; } return false; } else { aServer = aPart; ReplaceLocalHost(ref aServer); aPort = 3050; return true; } } public static bool SplitDatabaseTarget(string aDatabaseTarget, out string aServer, out int aPort, out string aPath) { aServer = "localhost"; aPort = 3050; aPath = null; if (string.IsNullOrWhiteSpace(aDatabaseTarget)) { return false; } var parts = aDatabaseTarget.Split(s_Splitter, StringSplitOptions.RemoveEmptyEntries); switch (parts.Length) { case 0: return false; case 1: // "webdb" aPath = parts[0]; return true; case 2: // "c:\fast.fdb" // "fast-server:webdb // "fast-server/3052:webdb" if (parts[0].Length == 1 && parts[1].StartsWith("\\")) { aPath = parts[0] + ":" + parts[1]; } else { if (!SplitServerAndPort(parts[0], out aServer, out aPort)) { return false; } aPath = parts[1]; } return true; case 3: // "fast-server:c:\fast\fast.fdb // "fast-server/3052:c:\fast\fast.fdb" if (!SplitServerAndPort(parts[0], out aServer, out aPort)) { return false; } if (parts[1].Length == 1 && parts[2].StartsWith("\\")) { aPath = parts[1] + ":" + parts[2]; return true; } return false; default: return false; } } ________________________________ Date: Fri, 13 Dec 2013 23:27:55 -0800 From: mr_...@ya... To: fir...@li... Subject: Re: [Firebird-net-provider] Detect current connection is local or network Hi ! "local" = database is on the same machine as application is thanks. On Friday, December 13, 2013 3:10 PM, Jiri Cincura <di...@ci...> wrote: >Depends on what you think "local" (your original question) is. On Fri, Dec 13, 2013 at 12:40 PM, Mr. John <mr_...@ya...> wrote: > solution is to search in connecton string for 'localhost' or '127.0.0.1' > ? On Friday, December 13, 2013 3:10 PM, Jiri Cincura <di...@ci...> wrote: On Fri, Dec 13, 2013 at 12:40 PM, Mr. John <mr_...@ya...> wrote: > solution is to search in connecton string for 'localhost' or '127.0.0.1' > ? Depends on what you think "local" (your original question) is. -- Jiri {x2} Cincura (x2develop.com founder) http://blog.cincura.net/ | http://www.ID3renamer.com ------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk _______________________________________________ Firebird-net-provider mailing list Fir...@li... https://lists.sourceforge.net/lists/listinfo/firebird-net-provider |