利用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