我正在开发一个家庭安全应用程序.我想做的一件事是根据我是否在家里自动关闭它.我有一部带Wifi的手机,当我回家时,它会自动连接到我的网络.
手机通过DHCP连接并获取其地址.虽然我可以将其配置为使用静态IP,但我宁愿不这样做.在C#/ .Net中是否有任何类型的"Ping"或等效设备可以获取设备的MAC地址并告诉我它是否在网络上当前有效?
编辑:为了澄清,我正在PC上运行软件,我希望能够在同一局域网上检测到手机.
编辑:这是我想出的代码,感谢spoulson的帮助.它可靠地检测我感兴趣的任何手机是否在家中.
private bool PhonesInHouse()
{
Ping p = new Ping();
// My home network is 10.0.23.x, and the DHCP
// pool runs from 10.0.23.2 through 10.0.23.127.
int baseaddr = 10;
baseaddr <<= 8;
baseaddr += 0;
baseaddr <<= 8;
baseaddr += 23;
baseaddr <<= 8;
// baseaddr is now the equivalent of 10.0.23.0 as an int.
for(int i = 2; i<128; i++) {
// ping every address in the DHCP pool, in a separate …
Run Code Online (Sandbox Code Playgroud) 我一直在做一些Johnny Chung Lee风格的 Wiimote编程,并且遇到了Wiimote相对狭窄的视野和四点限制的问题.我买了一个Creative Live!具有85度视野和高分辨率的相机.
我的原型应用程序是用C#编写的,我想留在那里.
所以,我的问题是:我想找一个C#.Net相机/视觉库,让我可以在相机的视野中跟踪点 - 可能是LED.将来,我想转向R/G/B点跟踪,以便更容易地跟踪和区分更多点.有什么建议?
我有一个采用IntPtr的外部库。有没有安全的方法可以做到这一点...
int BytesWritten = 0;
Output.WriteBytes(buffer, new IntPtr(&BytesWritten));
Run Code Online (Sandbox Code Playgroud)
...而不必使用“不安全”代码?我对IntPtrs不太熟悉,但是我想做这样的事情:
fixed int BytesWritten = 0;
Output.WriteBytes(buffer, IntPtr.GetSafeIntPtr(ref BytesWritten));
Run Code Online (Sandbox Code Playgroud)
...以这种方式,我不需要使用/ unsafe进行编译。
我不能更改WriteBytes函数,它是一个外部函数。
似乎在'ref int'和IntPtr之间应该进行某种类型的转换,但是我还没有找到它的运气。
我的项目有一个名为oops.aspx的错误页面.我们在以下代码中有以下代码global.asax
:
protected void Application_Error(object sender, EventArgs e)
{
Server.Transfer("~/oops.aspx", true);
}
Run Code Online (Sandbox Code Playgroud)
oops.aspx
能够提取错误,生成一个很好的电子邮件到服务器,并向用户显示一条错误消息.
使用Server.Transfer
保留URL,表单信息和其他有用的故障排除信息.在oops.aspx的某个时刻,在撰写电子邮件时,我抓住了Request.RawUrl并将其包含在电子邮件中.这是导致错误的页面的URL(带有查询字符串参数).
我们在web.config中也有这个:
<customErrors mode="On" defaultRedirect="oops.aspx"></customErrors>
Run Code Online (Sandbox Code Playgroud)
当系统由于基于此的错误而重定向时,它会重定向到/oops.aspx?aspxerrorpath=/Clients/EditClient.aspx
(有时使用/,有时使用%2f路径分隔符).Querystring和Exception信息丢失,因此oops.aspx生成的电子邮件和消息很少,并且没有说明发生了什么.
我最近遇到了很多第二种错误.错误发生在一小束中,其中几个在几分钟内发生,然后在几个小时内没有发生.它们发生在整个站点(包括on WebResource.axd
等),这让我觉得它不是我们站点中的特定错误,而是发生在较低级别的事情,如会话服务器问题或类似的事情.
所以,尽管如此,我的实际问题是:
我在网站上遇到错误,这种错误发生在他们没有被global.asax捕获的情况下.什么可能导致此类错误,我该如何解决它们?