下载频道  >  glen30的资源
  • C# 使用ManagedWifi连隐藏的WIFI

    C# 使用ManagedWifi连隐藏的WIFI。隐藏的WIFI和非隐藏WIFI的连接XML不同,隐藏的WIFI需要指定网络参数,主要差别就是这两个。 全部源代码,vs2008工程,可编译和测试。

    2019-10-10
    9
  • C# 使用ManagedWifi连有密码的WIFI

    C# 使用ManagedWifi连有密码的WIFI,功能包括WIFI扫描和连接。全部源代码,vs2008工程,可编译和测试。 WlanInterface接口的3个event都注册了,可以通过event回调函数得到当前的WIFI连接过程和最终的连接结果(连接成功或者失败)。

    2019-10-07
    12
  • C#通过API的方式获取指定网口的ARP表项

    C#通过API的方式获取指定网口的ARP表项。通常获取ARP表的时候返回的是电脑的所有的ARP表项,有时候需要获取指定网口的ARP表项,但是ARP表项里面只有网口索引,并没有网口的名称,因此必须找到网口名称和网口索引之间的关系。本demo是先通过网口名称找到网口索引,然后在所有的ARP表项里面检索网口索引为该索引的ARP表项,这样就得到了指定网口的ARP表项。 C#源代码,vs2008工程,可编译和测试。

    2019-09-19
    5
  • c# 开启ics共享(开启WIFI热点,共享上网),实现wifi共享精灵之类软件功能

    开启ICS共享,具体的共享网口可以设置(比如共享本地连接、宽带连接或者无线网络连接),实现了wifi共享精灵之类软件功能。使用方法:设置SSID和密码,选择共享的接口,然后点击“启动虚拟无线路由器”即可完成wifi共享。 C#全部源代码,vs2008工程,可编译和测试。 也可用于检测是否有ICS共享行为,如果有则关闭共享,代码如下,非常方便: IcsManager icsManager = new IcsManager(); foreach (var connection in icsManager.Connections) { if (connection.IsConnected && connection.IsSupported) { //connectionComboBox.Items.Add(connection); Console.WriteLine(connection.Name + ".." + connection.SharingEnabled); if (connection.SharingEnabled) { Console.WriteLine("禁止网络共享"); connection.DisableSharing(); } } }

    2019-09-15
    18
  • C#获取当前电脑的ARP表和以太网IP、掩码,然后筛选出以太网当前访问的设备IP和MAC地址

    C#获取当前电脑的ARP表,然后筛选出以太网的ARP表(通过以太网IP地址和掩码来计算),即通过以太网访问的设备IP和MAC地址。 完整的C#代码,vs2008工程,可编译和测试。注意:测试电脑只有一个以太网卡,如果电脑有多个以太网卡,代码可能需要调整一下(具体指明是哪个网卡)。

    2019-08-29
    13
  • Linux读取U盘或者移动硬盘序列号并获取U盘或者移动硬盘分区名

    Linux读取U盘或者移动硬盘序列号并获取U盘或者移动硬盘分区名。基本原理如下: 当有外置 USB 插入的时候,会产生 /proc/scsi/usb-storage 目录,并在其中产生数字文件(形如 1 2 3 4),此文件存储了设备相关信息。 相应的 /sys/class/scsi_device/ 目录中会有 scsi 设备的目录(ide 硬盘默认无子目录,sata硬盘默认有子目录),以数字开头(形如 1:0:0:0 2:0:0:0) 这个数字与前面 /proc/scsi/usb-storage目录中的相对应,子目录表示sata硬盘。比如 /sys/class/scsi_device/2:0:0:0/device/block 中有USB设备,从该目录下得到U盘或者移动硬盘的分区名,比如sda1。 该demo实现了上述过程,先检查 /proc/scsi/usb-storage 目录,看是否有u盘或者移动硬盘接入,如果有则读取u盘或者移动硬盘的序列号,然后在/sys/class/scsi_device/目录下逐级查找,直到找到u盘或者移动硬盘的分区。 完整代码,可直接编译和测试,嵌入式环境下也是适应的。 在linux测试如下,id表示序列号,sdb1表示是分区名称: # ./a.out udisk dev num:0 udisk id:055CE21B ret:0 dev num:0 found dir:0:0:0:1 found dev dir:0:0:0:1,full path:/sys/class/scsi_device/0:0:0:1 sub founction found dir:sda found sd device dir:sda,full path:/sys/class/scsi_device/0:0:0:1/device/block/sda found dir:0:0:0:2 found dev dir:0:0:0:2,full path:/sys/class/scsi_device/0:0:0:2 sub founction found dir:sdb found sd device dir:sdb,full path:/sys/class/scsi_device/0:0:0:2/device/block/sdb found sd sub device dir:sdb1 found dir:0:0:0:0 found dev dir:0:0:0:0,full path:/sys/class/scsi_device/0:0:0:0 sub funciton Open Directory /sys/class/scsi_device/0:0:0:0/device/block Error:No such file or directory get name return:0,disk name:sdb1 # 因为有的USB设备会有好几个,比如把CD和U盘集成到一起,就会出现上面的情况,有多个子目录去查找。

    2019-08-28
    13
  • C#寻找所有的U盘,获取U盘序列号,直接读写U盘的扇区(可用于U盘认证或者验证)。

    C#寻找所有的U盘,获取U盘序列号,直接读写U盘的扇区。 完整的C#代码,vs2008工程,可直接编译和测试。功能包括找到电脑上的所有U盘,然后获取到U盘的序列号,并且可以直接读写U盘的扇区。 这个demo非常有意义,根据分区MBR规则,MBR占用63个扇区(1个扇区512字节),最前面的有记录信息(这个扇区不要使用,写了这个扇区U盘要重新格式化),后面的62个分区是空置的没有使用。因此可以在读取序列号之后,用序列号做签名(或者其他加密信息),然后把签名存在2-63扇区,这样既不影响U盘的正常使用(可以正常使用U盘,U盘文件夹下看不到任何签名信息,很好的隐藏了签名),又极好的隐藏了签名信息,而且还可以用来鉴别是不是期望的U盘(读取2-63扇区存放的签名,和序列号一起验证签名)。

    2019-08-28
    13
  • 支持多线程的snmp实例,使用的是单个API(Single API)

    net-snmp API分为两种,一种叫传统API(Traditional API),一种叫单个API(Single API)。传统的API严格来说是不支持多线程的,在多线程环境下容易崩溃;Single API是支持多线程的,使用起来非常方便,有一个demo是连续启动20个线程同时调用Single API去操作,确实是没有出现问题的。 该demo是使用signle api去实现snmp读,写也是类似的。基本方法是用single api直接替换到传统的api(除了几个函数参数有差别外,大部分的参数都是一样的)。 全部代码,gcc直接编译,可测试。

    2019-08-22
    16
  • C# 利用Renci库来实现ssh客户端,可以执行ssh命令并获取返回结果

    C# 利用Renci库来实现ssh客户端,可以执行ssh命令并获取返回结果。一般的Renci ssh例子都不太好用,不能获取到命令的执行结果(shell执行命令后的输出信息),本例子是可以的。通过创建ShellStream,执行命令后,使用Expect方法并配合正则表达式,可以获取到命令执行后的全部输出信息。 完整的Vs2008 C#代码,可编译和测试。

    2019-08-11
    18
  • linux tcp keepalive存活代码设置

    TCP存活可以通过修改系统设置或者在tcp应用代码里面设置,本demo的是在tcp应用里面设置。原理是:对于一个已经建立的tcp连接。如果在keepalive_time时间内双方没有任何的数据包传输,则开启keepalive功能的一端将发送 eepalive数据包,若没有收到应答,则每隔keepalive_intvl时间再发送该数据包,发送keepalive_probes次。一直没有 收到应答,则发送rst包关闭连接。若收到应答,则将计时器清零。在默认参数下,若tcp对端不通知就掉线需要等待超过2个小时本端才能确认对端掉线。使用keepalive之后,多次keepalived探测失败表明链路已经断开,可及时得到链路是否存活的信息。这样做的好处是不需要自己实现心跳报文来侦测链路是否存活,简化了应用代码。设置keepalive之后,若tcp断开,则在使用该socket读写时立即失败。全部源代码,直接gcc命令就可以编译;运行本测试代码,然后拔掉主从之间的网线,主和从都可以检测到tcp断开。

    2019-07-07
    11
img
glen30

关注 私信