利用WebRequest来实现模拟浏览器通过Post方式向服务器提交数据

VB修改IP信息

Function ChangeIP(IP As String, NM As String, GW As String, MDNS As String, SDNS As String) As String

'返回值说明:返回一个设置的中文说明.

Dim strComputer, objWMIService, colNetAdapters, strIPAddress, strSubnetMask

Dim strGateway, strGatewaymetric, strDNS, objNetAdapter, errEnable, errGateways, errDNS strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

strIPAddress = Array(IP) 'ip地址

strSubnetMask = Array(NM) '子网掩码

strGateway = Array(GW) '网关

strDNS = Array(MDNS, SDNS) '主DNS各备DNS

strGatewaymetric = Array(1)

For Each objNetAdapter In colNetAdapters

errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)

errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)

errDNS = objNetAdapter.SetDNSServerSearchOrder(strDNS)

If errEnable = 0 And errGateways = 0 And errDNS = 0 Then

ChangeIP = "设置成功"

Else

If errEnable = 0 Then

ChangeIP = "IP地址和子网掩码设置成功, "

Else

ChangeIP = "IP地址或子网掩码设置失败, "

End If

If errGateways = 0 Then

ChangeIP = ChangeIP & "默认网关设置成功, "

Else

ChangeIP = ChangeIP & "默认网关设置失败, "

End If

If errDNS = 0 Then

ChangeIP = ChangeIP & "DNS设置成功"

Else

ChangeIP = ChangeIP & "DNS设置失败"

End If

End If

Next

End Function

Private Sub Command1_Click()

MsgBox ChangeIP("192.168.1.104", "255.255.255.0", "192.168.1.1", "61.236.159.99", "211.98.2.4")

End Sub

利用WebRequest来实现模拟浏览器通过Post方式向服务器提交数据

//通过Post发送的数据

string payload="chkbook=book&keyword=管理";

WebRequest req = WebRequest.Create("http://localhost/pceo/Search.aspx");

req.Method = "POST";

req.ContentType = "application/x-www-form-urlencoded";

StringBuilder UrlEncoded = new StringBuilder();

Char[] reserved = {'?', '=', '&'};

byte[] SomeBytes = null;

if (payload != null)

{

int i=0, j;

while(i

{

j=payload.IndexOfAny(reserved, i);

if (j==-1)

{

UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i,

payload.Length-i),System.Text .Encoding .GetEncoding ("gb2312")));

break;

}

UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i,

j-i),System.Text .Encoding .GetEncoding ("gb2312")));

UrlEncoded.Append(payload.Substring(j,1));

i = j 1;

}

SomeBytes = Encoding.Default.GetBytes(UrlEncoded.ToString());

req.ContentLength = SomeBytes.Length;

Stream newStream = req.GetRequestStream();

newStream.Write(SomeBytes, 0, SomeBytes.Length);

newStream.Close();

}

else

{

req.ContentLength = 0;

}

try

{

WebResponse result = req.GetResponse();

Stream ReceiveStream = result.GetResponseStream();

Byte[] read = new Byte[512];

int bytes = ReceiveStream.Read(read, 0, 512);

txtHTML.InnerHtml = "";

while (bytes > 0)

{

// 注意:

// 下面假定响应使用UTF-8 作为编码方式。

// 如果内容以ANSI 代码页形式(例如,932)发送,则使用类似下面的语句:

// Encoding encode = System.Text.Encoding.GetEncoding("shift-jis");

Encoding encode = System.Text.Encoding.GetEncoding("gb2312");

txtHTML.InnerHtml = txtHTML.InnerHtml encode.GetString(read, 0, bytes);

bytes = ReceiveStream.Read(read, 0, 512);

}

}

catch(Exception)

{

txtHTML.InnerHtml = "检索页时出错";

}

出处:狂风之家BLOG

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。

本站文章均来自网络,如有侵权,请联系028-********-200 QQ: 1585463984 我们将立即删除!

VB判断网络是否连接通

方法一:

Private Declare Function IsNetworkAlive Lib "SENSAPI.DLL " (ByRef lpdwFlags As Long) As Long

Private Sub Form_Load()

Dim Ret As Long

If IsNetworkAlive(Ret) = 0 Then

MsgBox "无网络连接"

Else

MsgBox "网络连接"

End If

End Sub

方法二:

请把以下代码加入一个单独的模块中

直接调用函数IsLan即可,返回值为真则连上局域网

绝对可行,我自己就用这个来测试电脑是否连上局域网,这里还有测试代理、是否连上internet 的代码,如果楼主需要的话我可以贴上去!

还有一个要注意的是:当你测试的时候,时间间隔要长一些,也就说,当你断开网络进行测试时,过一段时间再测定IsLan的真假,不然你看不出效果来的。

Private Declare Function InternetGetConnectedState Lib "wininet.dll " (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long

Private Const INTERNET_CONNECTION_LAN = &H2

Public Function IsLan() As Boolean

Dim lngFlag As Long

Call InternetGetConnectedState(lngFlag, 0)

IsLan = lngFlag And INTERNET_CONNECTION_LAN

End Function

方法三:

Private Sub Form_Load()

If Module1.ActiveConnection = True Then

MsgBox "现在处于链结状态。", vbInformation

Else

MsgBox "现在处于断开状态。", vbInformation

End If

End Sub

Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

Public Declare Function RegQueryvalueEx Lib "advapi32.dll" Alias "RegQueryvalueExA" (ByVal hKey As Long, ByVal

lpvalueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As

String, phkResult As Long) As Long

Public Const ERROR_SUCCESS = 0&

Public Const APINULL = 0&

Public Const HKEY_LOCAL_MACHINE = &H80000002

Public ReturnCode As Long

Public Function ActiveConnection() As Boolean

Dim hKey As Long

Dim lpSubKey As String

Dim phkResult As Long

Dim lpvalueName As String

Dim lpReserved As Long

Dim lpType As Long

Dim lpData As Long

Dim lpcbData As Long

ActiveConnection = False

lpSubKey = "System\CurrentControlSet\Services\RemoteAccess"

ReturnCode = RegOpenKey(HKEY_LOCAL_MACHINE, lpSubKey, phkResult)

If ReturnCode = ERROR_SUCCESS Then

hKey = phkResult

lpvalueName = "Remote Connection"

lpReserved = APINULL

lpType = APINULL

lpData = APINULL

lpcbData = APINULL

ReturnCode = RegQueryvalueEx(hKey, lpvalueName, lpReserved, lpType, lpData, lpcbData)

lpcbData = Len(lpData)

ReturnCode = ReturnCode = RegQueryvalueEx(hKey, lpvalueName, lpReserved, lpType, lpData, lpcbData)

If ReturnCode = ERROR_SUCCESS Then

If lpData = 0 Then

ActiveConnection = False

Else

ActiveConnection = True

End If

End If

RegCloseKey (hKey)

End If

End Function

相关主题
相关文档
最新文档