Conditionally Log a Message
Listing 4. This stored procedure conditionally logs a message if a provided address is a microsoft.com host. If the supplied address is an IP address, the stored procedure will attempt to perform a reverse DNS lookup to obtain a fully qualified hostname before checking whether the hostname ends in "microsoft.com." [Microsoft.SqlServer.Server.SqlProcedure(Name="SP_OutputParamDemo")] public static int ConditionalLog(SqlString msg, ref SqlString Address) { // Do not proceed if there is no Address if (Address.IsNull) { return -1; } // Default return value int ret = 0; // If Address is an IP address, then try to resolve the hostname if (System.Text.RegularExpressions.Regex.Match(Address.Value, @"^(?:\d{1,3}\.){3}\d{1,3}$").Success) { // Get host name for the provided IP address System.Net.IPHostEntry host = System.Net.Dns.GetHostEntry(Address.Value); Address = host.HostName; } if (Address.Value.EndsWith(".microsoft.com", StringComparison.CurrentCultureIgnoreCase)) { // Set a different return value ret = 1; // Actually log the message here } return ret; } |