c#程序里如何判断一个SQL服务器是本地还是远程的? 100
我的现在的服务器是这样设置的,IBM-FCC9FCEA3BD\XUNKAISQLSERVER这就是服务器名称,是本地的哟,axoxoao哥们,不能正确实现哟,我是不是要取...
我的现在的服务器是这样设置的,IBM-FCC9FCEA3BD\XUNKAISQLSERVER
这就是服务器名称,是本地的哟,
axoxoao 哥们,不能正确实现哟,我是不是要取得连接字串中的服务名称作为
ServerName 的值,再进行判断?我是这样做的,可是不成功。怎么判断都是远程的,
我测试了一下,服务器IP集中不包括127.0.0.1,而本地ip集中只有这一个,所以都是远程了。
rabsipm 你的这段话从哪里抄来的?莫名其妙,我说了防止数据注入了吗? 展开
这就是服务器名称,是本地的哟,
axoxoao 哥们,不能正确实现哟,我是不是要取得连接字串中的服务名称作为
ServerName 的值,再进行判断?我是这样做的,可是不成功。怎么判断都是远程的,
我测试了一下,服务器IP集中不包括127.0.0.1,而本地ip集中只有这一个,所以都是远程了。
rabsipm 你的这段话从哪里抄来的?莫名其妙,我说了防止数据注入了吗? 展开
5个回答
展开全部
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
namespace BaiduExample
{
class Program
{
static void Main(string[] args)
{
string ServerName = "IBM-FCC9FCEA3BD";//要判断的服务器名称
List<IPAddress> hostList = Dns.GetHostByName(ServerName).AddressList.ToList<IPAddress>();//获取服务器IP集合
List<IPAddress> locallist = Dns.GetHostByName("localhost").AddressList.ToList<IPAddress>();//获取本地IP集合
bool IsLoalIP = false;//初始化是否本地实例,默认为远程实例
foreach (IPAddress localip in locallist)
{
//循环判断服务器IP是否和本地IP有交集,如果有,则为本地实例
if (hostList.Find(delegate(IPAddress hostip) { return localip.ToString().Equals(hostip); }) != null)
{
IsLoalIP = true;//如果有交集,则为本地实例
}
}
Console.WriteLine(string.Format("{0}是{1}数据库实例", ServerName, IsLoalIP ? "本地" : "远程"));//输出结果
Console.Read();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
namespace BaiduExample
{
class Program
{
static void Main(string[] args)
{
string ServerName = "IBM-FCC9FCEA3BD";//要判断的服务器名称
List<IPAddress> hostList = Dns.GetHostByName(ServerName).AddressList.ToList<IPAddress>();//获取服务器IP集合
List<IPAddress> locallist = Dns.GetHostByName("localhost").AddressList.ToList<IPAddress>();//获取本地IP集合
bool IsLoalIP = false;//初始化是否本地实例,默认为远程实例
foreach (IPAddress localip in locallist)
{
//循环判断服务器IP是否和本地IP有交集,如果有,则为本地实例
if (hostList.Find(delegate(IPAddress hostip) { return localip.ToString().Equals(hostip); }) != null)
{
IsLoalIP = true;//如果有交集,则为本地实例
}
}
Console.WriteLine(string.Format("{0}是{1}数据库实例", ServerName, IsLoalIP ? "本地" : "远程"));//输出结果
Console.Read();
}
}
}
展开全部
这个问题可以这样考虑。因为C#本身是运行在服务器端的,也就是说程序怎么判断都是在服务器上。相对于它就是本地。从服务器角度来说,SQL是本地的。从客户端角度考虑就是远程的。你说怎么判断?呵呵
以上是我的理解。错误指出还谅解
以上是我的理解。错误指出还谅解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看ip地址
如果是local或127.0.0.1就是本地
如果不是这两种就远程的
如果是local或127.0.0.1就是本地
如果不是这两种就远程的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
百度知道就是被楼上的这种垃圾给搞坏的。。。找点书COPY过来有什么意思。。。。。。。
-----------------------------
要防止SQL注入其实不难,你知道原理就可以了。
所有的SQL注入都是从用户的输入开始的。如果你对所有用户输入进行了判定和过滤,就可以防止SQL注入了。用户输入有好几种,我就说说常见的吧。
文本框、地址栏里***.asp?中?号后面的id=1之类的、单选框等等。一般SQL注入都用地址栏里的。。。。如果要说怎么注入我想我就和上面的这位“仁兄”一样的了。
你只要知道解决对吗?
对于所有从上一页传递过来的参数,包括request.form 、request.qurrystring等等进行过滤和修改。如最常的***.asp?id=123 ,我们的ID只是用来对应从select 里的ID,而这ID一般对应的是一个数据项的唯一值,而且是数字型的。这样,我们只需把ID的值进行判定,就可以了。vbs默认的isnumeric是不行的,自己写一个is_numeric更好,对传过来的参数进行判定,OK,搞定。算法上的话,自己想想,很容易了。但是真正要做到完美的话,还有很多要计算的。比如传递过来的参数的长度,类型等等,都要进行判定。还有一种网上常见的判定,就是判定传递参数的那一页(即上一页),如果是正常页面传弟过来就通过,否则反之。也有对' or 等等进行过滤的,自己衡量就可以了。注意一点就是了,不能用上一页的某一个不可见request.form("*")进行判定,因为用户完全可以用模拟的形式“复制”一个和上一页完全一样的页面来递交参数。这样,这招就没用了。。。。
OK就说这么多,还不明白的话,找我。Loadinger@hotmail.com
-----------------------------
要防止SQL注入其实不难,你知道原理就可以了。
所有的SQL注入都是从用户的输入开始的。如果你对所有用户输入进行了判定和过滤,就可以防止SQL注入了。用户输入有好几种,我就说说常见的吧。
文本框、地址栏里***.asp?中?号后面的id=1之类的、单选框等等。一般SQL注入都用地址栏里的。。。。如果要说怎么注入我想我就和上面的这位“仁兄”一样的了。
你只要知道解决对吗?
对于所有从上一页传递过来的参数,包括request.form 、request.qurrystring等等进行过滤和修改。如最常的***.asp?id=123 ,我们的ID只是用来对应从select 里的ID,而这ID一般对应的是一个数据项的唯一值,而且是数字型的。这样,我们只需把ID的值进行判定,就可以了。vbs默认的isnumeric是不行的,自己写一个is_numeric更好,对传过来的参数进行判定,OK,搞定。算法上的话,自己想想,很容易了。但是真正要做到完美的话,还有很多要计算的。比如传递过来的参数的长度,类型等等,都要进行判定。还有一种网上常见的判定,就是判定传递参数的那一页(即上一页),如果是正常页面传弟过来就通过,否则反之。也有对' or 等等进行过滤的,自己衡量就可以了。注意一点就是了,不能用上一页的某一个不可见request.form("*")进行判定,因为用户完全可以用模拟的形式“复制”一个和上一页完全一样的页面来递交参数。这样,这招就没用了。。。。
OK就说这么多,还不明白的话,找我。Loadinger@hotmail.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1l别误导人。127.0.0.1只是环回地址。如果填的是本机的实际ip,或者是机器名你还这么判断?
不过不知道你为什么要有这种需求。如果要实现什么目标,最好换个思路。
不过不知道你为什么要有这种需求。如果要实现什么目标,最好换个思路。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询