如何获取托管应用程序的计算机的LocalhostName,Ip。对于开发,部署不同的内容将localhost
。我需要初始化SmtpClient以通过应用程序发送电子邮件
SmtpClient emailClient = new SmtpClient("host","port");//port is optional
我正在寻找一个永久的解决方案,没有解决方法,也没有嗅到响应,请求,这可能是欺骗[希望我不是疯了,因为没有人可以欺骗标题中的服务器数据吗?]
答案 0 :(得分:3)
如果你想配置SmtpClient类,你应该看一下system.net> mail.config:http://msdn.microsoft.com/en-us/library/w355a94k.aspx
的mailsettings条目<configuration>
<system.net>
<mailSettings>
<smtp deliveryMethod="network">
<network
host="localhost"
port="25"
defaultCredentials="true"
/>
</smtp>
</mailSettings>
</system.net>
</configuration>
使用无参数构造函数
实现StmpClientvar client = new SmtpClient();
答案 1 :(得分:0)
如果您使用
IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
和
public static bool IsLocalIpAddress(string host)
{
try
{ // get host IP addresses
IPAddress[] hostIPs = Dns.GetHostAddresses(host);
// get local IP addresses
IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
// test if any host IP equals to any local IP or to localhost
foreach (IPAddress hostIP in hostIPs)
{
// is localhost
if (IPAddress.IsLoopback(hostIP)) return true;
// is local address
foreach (IPAddress localIP in localIPs)
{
if (hostIP.Equals(localIP)) return true;
}
}
}
catch { }
return false;
}
它应该返回类似
的内容IsLocalIpAddress("localhost"); // true (loopback name)
IsLocalIpAddress("127.0.0.1"); // true (loopback IP)
IsLocalIpAddress("MyNotebook"); // true (my computer name)
IsLocalIpAddress("192.168.0.1"); // true (my IP)
IsLocalIpAddress("NonExistingName"); // false (non existing computer name)
IsLocalIpAddress("99.0.0.1"); // false (non existing IP in my net)
可以简单地修改它以返回您需要的地址