﻿<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><style type="text/css">.OH_CodeSnippetContainerTabLeftActive, .OH_CodeSnippetContainerTabLeft,.OH_CodeSnippetContainerTabLeftDisabled { }.OH_CodeSnippetContainerTabRightActive, .OH_CodeSnippetContainerTabRight,.OH_CodeSnippetContainerTabRightDisabled { }.OH_footer { }</style><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>UdpAppender.RemoteAddress Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RemoteAddress property" /><meta name="System.Keywords" content="UdpAppender.RemoteAddress property" /><meta name="Microsoft.Help.F1" content="log4net.Appender.UdpAppender.RemoteAddress" /><meta name="Microsoft.Help.F1" content="log4net.Appender.UdpAppender.get_RemoteAddress" /><meta name="Microsoft.Help.F1" content="log4net.Appender.UdpAppender.set_RemoteAddress" /><meta name="Microsoft.Help.Id" content="P:log4net.Appender.UdpAppender.RemoteAddress" /><meta name="Description" content="Gets or sets the IP address of the remote host or multicast group to which the underlying should sent the logging event." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="log4net.Appender" /><meta name="file" content="P_log4net_Appender_UdpAppender_RemoteAddress" /><meta name="guid" content="P_log4net_Appender_UdpAppender_RemoteAddress" /></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="OH_outerDiv"><div class="OH_outerContent"><table class="TitleTable"><tr><td class="OH_tdTitleColumn">UdpAppender<span id="LSTC5118024_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC5118024_0?cpp=::|nu=.");</script>RemoteAddress Property </td><td class="OH_tdRunningTitleColumn">Apache log4net™ SDK Documentation</td></tr></table><div id="mainSection"><div id="mainBody"><span class="introStyle"></span><div class="summary">
            Gets or sets the IP address of the remote host or multicast group to which
            the underlying <a href="http://msdn2.microsoft.com/en-us/library/9wkb9k12" target="_blank">UdpClient</a> should sent the logging event.
            </div><p> </p><strong>Namespace:</strong> <a href="N_log4net_Appender.htm">log4net.Appender</a><br /><strong>Assembly:</strong> log4net (in log4net.dll) Version: 2.0.8.0-.NET 4.0<div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Syntax</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><div class="OH_CodeSnippetContainer"><div class="OH_CodeSnippetContainerTabs"><div class="OH_CodeSnippetContainerTabLeft" id="ID0EDCA_tabimgleft"> </div><div id="ID0EDCA_tab1" class="OH_CodeSnippetContainerTabFirst"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="OH_CodeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="OH_CodeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="OH_CodeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div><div class="OH_CodeSnippetContainerTabRight" id="ID0EDCA_tabimgright"> </div></div><div class="OH_CodeSnippetContainerCodeCollection"><div class="OH_CodeSnippetToolBar"><div class="OH_CodeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="OH_CodeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">IPAddress</span> <span class="identifier">RemoteAddress</span> { <span class="keyword">get</span>; <span class="keyword">set</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Property</span> <span class="identifier">RemoteAddress</span> <span class="keyword">As</span> <span class="identifier">IPAddress</span>
	<span class="keyword">Get</span>
	<span class="keyword">Set</span></pre></div><div id="ID0EDCA_code_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
<span class="keyword">property</span> <span class="identifier">IPAddress</span>^ <span class="identifier">RemoteAddress</span> {
	<span class="identifier">IPAddress</span>^ <span class="keyword">get</span> ();
	<span class="keyword">void</span> <span class="keyword">set</span> (<span class="identifier">IPAddress</span>^ <span class="parameter">value</span>);
}</pre></div><div id="ID0EDCA_code_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">RemoteAddress</span> : <span class="identifier">IPAddress</span> <span class="keyword">with</span> <span class="keyword">get</span>, <span class="keyword">set</span>
</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s128tyf6" target="_blank">IPAddress</a><br />
            The IP address of the remote host or multicast group to which the logging event 
            will be sent.
            <div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Remarks</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><p>
            Multicast addresses are identified by IP class <b>D</b> addresses (in the range 224.0.0.0 to
            239.255.255.255).  Multicast packets can pass across different networks through routers, so
            it is possible to use multicasts in an Internet scenario as long as your network provider 
            supports multicasting.
            </p><p>
            Hosts that want to receive particular multicast messages must register their interest by joining
            the multicast group.  Multicast messages are not sent to networks where no host has joined
            the multicast group.  Class <b>D</b> IP addresses are used for multicast groups, to differentiate
            them from normal host addresses, allowing nodes to easily detect if a message is of interest.
            </p><p>
            Static multicast addresses that are needed globally are assigned by IANA.  A few examples are listed in the table below:
            </p><p><div class="tableSection"><table><tr><th>IP Address</th><th>Description</th></tr><tr><td>224.0.0.1</td><td><p>
                        Sends a message to all system on the subnet.
                        </p></td></tr><tr><td>224.0.0.2</td><td><p>
                        Sends a message to all routers on the subnet.
                        </p></td></tr><tr><td>224.0.0.12</td><td><p>
                        The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet.
                        </p></td></tr></table></div></p><p>
            A complete list of actually reserved multicast addresses and their owners in the ranges
            defined by RFC 3171 can be found at the IANA web site. 
            </p><p>
            The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative 
            addresses.  These addresses can be reused with other local groups.  Routers are typically 
            configured with filters to prevent multicast traffic in this range from flowing outside
            of the local network.
            </p><div class="OH_CollapsibleAreaRegion" id="seeAlsoSection"><div class="OH_regiontitle">See Also</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_log4net_Appender_UdpAppender.htm">UdpAppender Class</a></div><div class="seeAlsoStyle"><a href="N_log4net_Appender.htm">log4net.Appender Namespace</a></div></div></div></div></div><div id="OH_footer" class="OH_footer">Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.<p><a href="http://logging.apache.org/log4net/" target="_blank">Copyright 2004-2017 The Apache Software Foundation</a></p><div class="OH_feedbacklink">Send comments on this topic to
        <a id="HT_MailLink" href="mailto:http%3A%2F%2Flogging.apache.org%2Flog4net%2Fmail-lists.html?Subject=Apache log4net™ SDK Documentation">http://logging.apache.org/log4net/mail-lists.html</a></div><script type="text/javascript">
        var HT_mailLink = document.getElementById("HT_MailLink");
        var HT_mailLinkText = HT_mailLink.innerHTML;
        HT_mailLink.href += ": " + document.title + "\u0026body=" + encodeURIComponent("Your feedback is used to improve the documentation and the product. Your e-mail address will not be used for any other purpose and is disposed of after the issue you report is resolved. While working to resolve the issue that you report, you may be contacted via e-mail to get further details or clarification on the feedback you sent. After the issue you report has been addressed, you may receive an e-mail to let you know that your feedback has been addressed.");
        HT_mailLink.innerHTML = HT_mailLinkText;
        </script> </div></body></html>