这是我所指的IP,红色的:

我正在尝试以编程方式实现当前客户端IP地址xxx.xxx添加到允许的IP地址。
发布于 2013-02-12 01:05:18
以下是对我有效的方法:有一个"AutoDetectClientIP“管理应用程序接口调用,它将现有的防火墙异常更新为调用者的IP地址。
但你需要访问对给定订阅有效的管理证书、订阅ID、SQL Azure服务器的名称和防火墙例外的名称。
public static bool SetFirewallRuleAutoDetect(string certFilename, string certPassword, string subscriptionId, string serverName, string ruleName)
{
try
{
string url = string.Format("https://management.database.windows.net:8443/{0}/servers/{1}/firewallrules/{2}?op=AutoDetectClientIP",
subscriptionId,
serverName,
ruleName);
HttpWebRequest webRequest = HttpWebRequest.Create(url) as HttpWebRequest;
webRequest.ClientCertificates.Add(new X509Certificate2(certFilename, certPassword));
webRequest.Method = "POST";
webRequest.Headers["x-ms-version"] = "1.0";
webRequest.ContentLength = 0;
// call the management api
// there is no information contained in the response, it only needs to work
using (WebResponse response = webRequest.GetResponse())
using (Stream stream = webResponse.GetResponseStream())
using (StreamReader sr = new StreamReader(stream))
{
Console.WriteLine(sr.ReadToEnd());
}
// the firewall was successfully updated
return true;
}
catch
{
// there was an error and the firewall possibly not updated
return false;
}
}发布于 2013-02-12 00:51:05
您的IP地址由您所在网络的NATting决定,除非您来自具有固定公共IP地址的计算机。除非您的客户端计算机连接到同一网络,并且您详细了解该网络,否则您不太可能可靠地预测客户端IP地址。唯一的解决方案是添加一个从86.0.0.0到86.255.255.255的范围,并希望它能覆盖你连接的网络--但一大堆“不受欢迎的东西”也会落在这个范围内。
除了直接管理员访问之外,客户端IP地址功能不应用于任何其他用途,直接管理员访问可以根据需要随时手动设置。也可以使用本地防火墙规则锁定它,方法是将端口1433上的访问限制到特定的本地网络计算机。任何更一般的访问都应该限制为某种类型的服务-例如OData样式、mobile services或使用某种类型的port bridge,这可以通过VPN、VM和其他IaaS服务来促进。
有许多更快、更安全、更易于管理的替代方案。此外,至少你正在进入一个痛苦的世界,试图让安全人员在他们的SQL端口防火墙上戳洞。
https://stackoverflow.com/questions/14816319
复制相似问题