获取本机IP、MAC及获取网关MAC -- VC
由于工作关系,最近转投VC的开发了。。。当然,还是要从最近本做起的。最近跟网络这块接触较多,写了两段小函数。
获取本机MAC,网上的代码都写烂了,但是异常处理不太好,比如多网卡等情况,于是自己写了一段简单明了靠谱的代码。
具体流程为先获取自己程序所在的网络的网络名,然后根据网络名获取IP,最后sendarp得到MAC。思路清晰。。。。
代码如下:
CString GetLocalIP()
...
由于工作关系,最近转投VC的开发了。。。当然,还是要从最近本做起的。最近跟网络这块接触较多,写了两段小函数。
获取本机MAC,网上的代码都写烂了,但是异常处理不太好,比如多网卡等情况,于是自己写了一段简单明了靠谱的代码。
具体流程为先获取自己程序所在的网络的网络名,然后根据网络名获取IP,最后sendarp得到MAC。思路清晰。。。。
代码如下:
CString GetLocalIP()
...
这个情况早在2009年11月就发现了,当时在VBGOOD的水区发帖说明,结果没几天就沉了。。。情况是这样子的:
QQ上一个搞VB的女性朋友叫Gcyun,VB的编程水平很高,功底不错。她在百度空间中经常发些东西出来,于是我的这个博客上加了她的空间链接,链接的名字写的略显彪悍,大家可以看看我的博客首页上有显示。懒得看的朋友看下图:
...
远程屏幕传输,不用多解释了。这个代码很简单,就是将屏幕截图成JPG,然后发送数据,接收到之后显示出来,效率很低很低。。。 我原来做过一个分块差异比较的传输算法,是将屏幕分成M*N的矩阵,然后每个块去1-2个特征点,比较前后特征点的RGB值是否发生改变来判定这个块是否发生变化,变化了就发送这个块。这么操作效率是高了那么一点,但CPU占用很高(VB本身也不是干着活用的,效率比较低)。悲剧的是那份代码在一次硬盘出意外之后木有了。。。泪流满面。。。
这份代码至少给想了解这方面原理的同学不少启发,从屏幕截取到传输与显示,winsock应用和传输协议等等。
...
这几天做点家伙,用到了很多动态调用的实例,淘到了一些比较有意思的代码,都贴出来涨涨人气。
这份代码是动态调用API的例子。使用的人类(Supermanking)同学(暂时称为同学吧。。比较亲切)做的APIClass类,着实很强大。
调用这个类的代码如下:
Dim API As New APIClass
Dim APIScript As String
...
从内存中加载并调用DLL的代码,很邪恶,VBGOOD的仙剑魔同学从C翻译成VB的。
直接在内存中调用DLL中的函数,根据这个代码会产生很邪恶的想法,进而编出很邪恶的程序。。。。我啥也没说。。。
...
一些功能比如sendmessage、截屏等等在SYSTEM权限下会不工作,以前没有碰到过这个情况所以一直没去处理,前两天做模拟点击的时候必须处理这个情况,于是有了个这个传说中的降权的代码。SYSTEM权限的进程建立普通权限的进程第一反应就是CreateProcessAsUser函数。于是有了下面的代码:
Option Explicit
...
话说前不久开发某个系统的时候,为了提高服务器的性能使用了IOCP模型,这份代码是在网上查资料的时候从VBGOOD淘到的,基本框架算是写出来了,是一份难得的极品代码。
不过最后我没用用这个代码。。。因为时间和精力有限,直接使用了别人的IOCP服务器组件。。。
但是这份代码还是很有价值的,有时间了重新整理下,加上异常情况捕捉和错误处理等等等等。。。
代码如下:
...
好久没有写文章,发一篇顶顶博客访问量。别人建议转一些比较好的代码也贴过来,但是我打算这里主要发自己原创的代码,所以么。。流量该多少就多少吧。。。
回到主题,在webbrowser中点击某链接网上几乎都是用document对象模拟点击,这个方法基本能应对一般的情况,但是例如广告联盟的点击XXX就有检测机制(不多解释,你们懂的)。所以完全模拟鼠标的点击事件就比较完美。于是我用了最常见的SendMessage。
接下来就要解决一个问题,webbrowser的句柄问题。从控件本身得到的句柄不是真正的浏览窗口的句柄,用SPY++看一下就能看出来,这里不贴图了。按照这个窗体的结构,用以下代码可以获取到网页的窗口的句柄。
...
最近最的项目用到了socket,开始使用VB的winscok控件,但是这个控件的效率太低了而且没法设置超时,要建立一个Timer来完成,很不方便。于是决定用功能强大的PowerBasic来做。PB本身自带了好多有关TCP的函数使用起来非常方便,Google小搜索了下找到了这个很不错的代码,是一个Http服务器,使用多线程来完成socket,代码比较长,但是分析下就能看到socket部分的代码。希望对PBer有用。
...
当博客访问量日益增加的时候,突然悲剧再次发生。。。空间被停了。。。正好赶上乱七八糟的事情比较多,没空打理。终于忙完了,花了58买了一个小小的空间放下了这个只有几十M的博客,我BF的博客终于再次开通啦~~
新老朋友多多光临哦!~