VB.NET下载文件及显示进程

简单的下载

1.创建WebClient类,再输入要下载的资源url地址还有本地保存路径即可。

Dim DownloadClient As New Net.WebClient() 
DownloadClient.DownloadFile(yoururladdress,yourfileaddress)

2.使用 DownloadFile的方法下载文件,指定文件的下载地址和本地路径,和超时时间。

My.Computer.Network.DownloadFile(yoururladdress, yourfileaddress, False, 500)

具有进度提示的下载

以VS2015为编译环境,举例如下:

Imports System.Net
Public Class Main

    Dim DownloadClient As New WebClient

    Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler DownloadClient.DownloadProgressChanged, AddressOf ShowDownProgress 
        AddHandler DownloadClient.DownloadDataCompleted, AddressOf DownloadDataCompleted
    End Sub

    Private Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button.Click
        DownLoadFiles()
    End Sub

    Private Sub DownLoadFiles()  
         DownloadClient.DownloadFileAsync(New Uri(yourlink), (yoursaveaddress))
    End Sub

    Private Sub ShowDownProgress(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs)
        Invoke(New Action(Of Integer)(Sub(i) ProgressBar.Value = i), e.ProgressPercentage)
    End Sub

    Sub DownloadDataCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
        MessageBox.Show("下载成功!", "提示", MessageBoxButtons.OK)
    End Sub
End Class

.NET中WebBrowser内核版本解决方案

方案一:更改网页META标签

例如使用IE9内核的特性,则可以在网页<head>标签中加入<meta http-equiv="X-UA-Compatible" content="IE=9" >

注意:这个标签必须加在<head>中其他CSS和JavaScript链接之前,但可以与<title>和其他<meta>成任意位置。

方案二:修改注册表

例如使用IE9内核的特性,可在注册表添加两个键值。

HKEY_LOCAL_MACHINE (和 HKEY_CURRENT_USER) >SOFTWARE > Microsoft > Internet Explorer > Main > FeatureControl > FEATURE_BROWSER_EMULATION

新建 → DWORD(32-位)值 yourprogram.exe = 9999 (十进制)

其中,9999 (0x270F) IE9,无论是否声明!DOCTYPE指令,页面以IE9兼容模式打开。对于未正确声明!DOCTYPE指令的页面,将会以怪异模式(quirks mode)加载

更多mode值对照表,参考:Browser Emulation

英语笔记

修正之前版本的一些错误,并添加一些新的词汇。

  • hold 成立
  • quadratic 二次方
  • multiplication
  • designation 称作,指定
  • convention 惯例
  • denote 表示
  • respectively 分别,各自
  • manipulate 操作
  • quotient 商
  • algebraic 代数的
  • fraction 分数
  • polynomial 多项式的
  • crucial 至关重要的
  • order 阶

    Read More

利用iptables禁止BT流量

确保安装了iptables。

在终端输入:

iptables -A FORWARD -m string --string "BitTorrent" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "BitTorrent protocol" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "peer_id=" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string ".torrent" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "announce.php?passkey=" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "torrent" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "announce" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "info_hash" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "get_peers" --algo bm -j DROP
iptables -A FORWARD -m string --string "announce_peer" --algo bm -j DROP
iptables -A FORWARD -m string --string "find_node" --algo bm -j DROP
iptables -A FORWARD -m string --algo bm --hex-string "|13426974546f7272656e742070726f746f636f6c|" -j DROP

原理:不封锁端口,而是阻止BT软件发出的特定请求,并结合BT软件的hex,定向kill request。

保存规则:

iptables-save > /root/iptables.rules

重新加载规则:

iptables-restore < /root/iptables.rules

设置自启动

vim /etc/network/if-pre-up.d/iptables

添加如下内容:

#!/bin/bash
/sbin/iptables-restore < /root/iptables.rules

保存后赋予执行权限:

chmod +x /etc/network/if-pre-up.d/iptables

在树莓派上运行ZeroNet

由于ZeroNet占用内存大小在可接受的范围内,所以在树莓派中运行,作为一个节点或者ZeroNet服务器,都是一个非常可行的方案。

安装

相当简单:

apt-get install python-dev python-pip
pip install gevent --upgrade
pip install msgpack-python --upgrade
wget https://github.com/HelloZeroNet/ZeroNet/archive/master.tar.gz
tar -xzvf master.tar.gz
cd ZeroNet-master
python zeronet.py

注意,启动Server的过程时间颇长,耐心等待。

作为一个ZeroNet服务器

指定监听ip。

python zeronet.py --ui_ip 0.0.0.0

然后你就可以在内网或者,外网路由开启端口转发,通过你的树莓派上网了。你只需要输入树莓派内网/外网ip:43110 ,事情就变得简单起来。

注意,如果在路由下,需要设置端口转发。

Read More