锘??xml version="1.0" encoding="utf-8" standalone="yes"?> Changing proxy settings of IE is a frequent requirement of mine. Then I got the idea of writing a tool by myself, at last. I have not found clear instructions on this. Many articles recommend to modify registry directly, but unfortunately their instruction is not enough. Most of them direct me to modify the following values in registry :- I tested it and find that it does not work at least on my computer.( I access internet by ADSL connection.) So I backed up registry and modified proxy settings via Internet Explorer, finding that [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections] is also changed. So I wrote the following code snippet to change proxy settings: Problem with above code is that existing Internet Explorer instances don't know the change of settings. What is more, changing registry directly is not an elegant method. Then the following must be more attractive : The usage is very straightforward: Existing Internet Explorer instances are notified by
http://www.codeproject.com/internet/changeproxy1.asp
Introduction
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"ProxyEnable"=dword:00000001
"ProxyServer"=":"
"ProxyOverride"=""
"DisablePasswordCaching"=dword:00000001
Details
Collapse
void ShowError(long lerr)
{
LPVOID lpMsgBuf;
if (!FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
lerr,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL ))
{
return;
}
MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
LocalFree( lpMsgBuf );
}
void CieproxyDlg::OnBnClickedOk()
{//set proxy server
UpdateData();
GetDlgItemText(IDC_EDIT1,m_sIEProxy);
HKEY hk;
LONG lret=RegOpenKeyEx(HKEY_CURRENT_USER,
"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings",
NULL,KEY_WRITE|KEY_SET_VALUE,&hk);
if(lret==ERROR_SUCCESS&&NULL!=hk)
{
TCHAR* pbuf=m_sIEProxy.GetBuffer(1);
lret=RegSetValueEx( hk,"ProxyServer",NULL,REG_SZ,pbuf,m_sIEProxy.GetLength());
DWORD dwenable=1;
lret=RegSetValueEx(hk,"ProxyEnable",NULL,REG_DWORD,
(LPBYTE)&dwenable,sizeof(dwenable));
RegCloseKey(hk);
}
const TCHAR* keyname3=_T(
"software\\Microsoft\\windows\\currentversion\\Internet Settings\\Connections");
lret=RegOpenKeyEx(HKEY_CURRENT_USER,keyname3,NULL,
KEY_READ|KEY_WRITE|KEY_SET_VALUE,&hk);
if(lret==ERROR_SUCCESS&&NULL!=hk)
{
DWORD dwtype;
char pbuf[256];
DWORD dwlen=sizeof(pbuf);
constchar* valname="Connection to adsl3";
lret=RegQueryValueEx(hk,valname,NULL,&dwtype,pbuf,&dwlen);
if(lret!=ERROR_SUCCESS)
{
ShowError(lret);
}
pbuf[8] = 3;//enable proxy
pbuf[4]=pbuf[4]+1;
constchar* p=m_sIEProxy.GetBuffer(1);
memcpy(pbuf+16,p,m_sIEProxy.GetLength());
char c=0;
for(int i=m_sIEProxy.GetLength();i<20;i++)
pbuf[16+i]=c;
m_sIEProxy.ReleaseBuffer();
lret=RegSetValueEx(hk,valname,NULL,REG_BINARY,pbuf,dwlen);
RegCloseKey(hk);
}
DWORD dwret;
SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,NULL,NULL,
SMTO_NORMAL,1000,&dwret);
}
void CieproxyDlg::OnBnClickedDisableProxy()
{
UpdateData();
GetDlgItemText(IDC_EDIT1,m_sIEProxy);
HKEY hk;
LONG lret=RegOpenKeyEx(HKEY_CURRENT_USER,
"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings",
NULL,KEY_WRITE|KEY_SET_VALUE,&hk);
if(lret==ERROR_SUCCESS&&NULL!=hk)
{
DWORD dwenable=0;
lret=RegSetValueEx(hk,"ProxyEnable",NULL,REG_DWORD,
(LPBYTE)&dwenable,sizeof(dwenable));
RegCloseKey(hk);
}
const TCHAR* keyname3=_T(
"software\\Microsoft\\windows\\currentversion\\Internet Settings\\Connections");
lret=RegOpenKeyEx(HKEY_CURRENT_USER,keyname3,
NULL,KEY_READ|KEY_WRITE|KEY_SET_VALUE,&hk);
if(lret==ERROR_SUCCESS&&NULL!=hk)
{
DWORD dwtype;
char pbuf[256];
DWORD dwlen=sizeof(pbuf);
constchar* valname="Connection to adsl3";
lret=RegQueryValueEx(hk,valname,NULL,&dwtype,pbuf,&dwlen);
if(lret!=ERROR_SUCCESS)
{
ShowError(lret);
}
pbuf[8] = 1;//enable proxy
pbuf[4]=pbuf[4]+1;
lret=RegSetValueEx(hk,valname,NULL,REG_BINARY,pbuf,dwlen);
RegCloseKey(hk);
}
DWORD dwret;
SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,NULL,NULL,SMTO_NORMAL,
1000,&dwret);
}
Collapse
BOOL SetConnectionOptions(LPCTSTR conn_name,LPCTSTR proxy_full_addr)
{
//conn_name: active connection name. //proxy_full_addr : eg "210.78.22.87:8000"
INTERNET_PER_CONN_OPTION_LIST list;
BOOL bReturn;
DWORD dwBufSize = sizeof(list);
// Fill out list struct.
list.dwSize = sizeof(list);
// NULL == LAN, otherwise connectoid name.
list.pszConnection = conn_name;
// Set three options.
list.dwOptionCount = 3;
list.pOptions = new INTERNET_PER_CONN_OPTION[3];
// Make sure the memory was allocated.if(NULL == list.pOptions)
{
// Return FALSE if the memory wasn't allocated.
OutputDebugString("failed to allocat memory in SetConnectionOptions()");
return FALSE;
}
// Set flags.
list.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS;
list.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT |
PROXY_TYPE_PROXY;
// Set proxy name.
list.pOptions[1].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
list.pOptions[1].Value.pszValue = proxy_full_addr;//"http://proxy:80";// Set proxy override.
list.pOptions[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS;
list.pOptions[2].Value.pszValue = "local";
// Set the options on the connection.
bReturn = InternetSetOption(NULL,
INTERNET_OPTION_PER_CONNECTION_OPTION, &list, dwBufSize);
// Free the allocated memory.delete [] list.pOptions;
InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);
return bReturn;
}
BOOL DisableConnectionProxy(LPCTSTR conn_name)
{
//conn_name: active connection name.
INTERNET_PER_CONN_OPTION_LIST list;
BOOL bReturn;
DWORD dwBufSize = sizeof(list);
// Fill out list struct.
list.dwSize = sizeof(list);
// NULL == LAN, otherwise connectoid name.
list.pszConnection = conn_name;
// Set three options.
list.dwOptionCount = 1;
list.pOptions = new INTERNET_PER_CONN_OPTION[list.dwOptionCount];
// Make sure the memory was allocated.if(NULL == list.pOptions)
{
// Return FALSE if the memory wasn't allocated.
OutputDebugString("failed to allocat memory in DisableConnectionProxy()");
return FALSE;
}
// Set flags.
list.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS;
list.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT ;
// Set the options on the connection.
bReturn = InternetSetOption(NULL,
INTERNET_OPTION_PER_CONNECTION_OPTION, &list, dwBufSize);
// Free the allocated memory.delete [] list.pOptions;
InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);
return bReturn;
}
//set proxy
const
char* connection_name="Connection to adsl3";
SetConnectionOptions(connection_name,"62.81.236.23:80");
//disable proxy
DisableConnectionProxy(connection_name);
INTERNET_OPTION_SETTINGS_CHANGED
and INTERNET_OPTION_REFRESH
]]>
鏍嚶?棰? Visual Assist X 鐮磋В鎶ュ憡
鍙戜俊绔? 姘存湪紺懼尯 (Wed Sep 20 21:05:46 2006), 绔欏唴
聽(tīng)聽(tīng)聽(tīng) 濂戒箙娌$敤VA浜? 浠婂ぉ鏈変漢鍙戜簡(jiǎn)鏂扮増鏈?535, 灝辮瘯浜?jiǎn)璇? 鍏堟兂鐢ㄤ互鍓嶇増鏈殑code緇撴灉娌℃湁
鎴愬姛. VA璇曠敤鏈熶竴涓湀, 璇曠敤鏄叏鍔熻兘鐨? 榪欑偣榪樹笉閿? 浣嗘槸鍒版湡鐨勮瘽灝變笉鑳界戶緇簡(jiǎn).榪欑瘒
鐭枃鐨勭洰鐨勫氨鏄棤闄愭湡鎵╁睍璇曠敤鏈? 浣夸綘鑳藉灝芥儏浜彈VA甯︽潵鐨勫揩涔?聽(tīng) 鍏嶅幓澶у瀵繪壘鐮磋В
鐨勭棝鑻?
聽(tīng)聽(tīng)聽(tīng) 鏈潵涓嶆兂鍙戠殑, Visual Assist X紜疄鍋氬緱涓嶉敊.濡傛灉瑙夊緱VA濂界敤, 璇鋒敮鎸佹鐗? 鍛靛懙.
聽(tīng)聽(tīng)聽(tīng) 鐢ㄥ埌鐨勫伐鍏? Registry Workshop, 闄勪歡涓湁涓浠?
聽(tīng)聽(tīng)聽(tīng) 浠ヤ笅鐨勫唴瀹瑰弬鑰冧簡(jiǎn)涓浜涚綉涓婄殑鏂囩珷, 鍙﹀鏈変竴浜涚寽嫻嬬殑鎴愬垎, 璇瘋嚜鎷呴闄?
聽(tīng)聽(tīng)聽(tīng) 涓昏鐨勬柟娉曞氨鏄秷鍘籚A璁板綍涓嬬殑涓浜涘畨瑁呭強(qiáng)璇曠敤鏃墮棿淇℃伅.VA璁板綍榪欎簺淇℃伅鐨勫湴鏂規(guī)湁涓?br />涓?
1) HKEY_LOCAL_MACHINE\SOFTWARE\Licenses
聽(tīng)聽(tīng)聽(tīng) 榪欎竴涓緢濂芥壘. 寤鴻鍔犲叆Registry Workshop鏀惰棌澶?
2)
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{ACABBB00-02A4-CF3E-B293-188330493F10}
聽(tīng)聽(tīng)聽(tīng) {XXX...}瀵逛簬涓嶅悓鐨勭増鏈互鍙?qiáng)涓嶅悓鐨勬満鍣ㄥ彲鑳戒笉鍚? 姣斿
{ACABBB00-02A4-CF3E-B293-188330493F10}鏄垜XP铏氭嫙鏈轟笂鐨勫? 鎴戝疄闄呮満鍣ㄤ笂鐨勬槸
{2401839D-8A0E-F7A3-3A39-201EB8E3078D}.
聽(tīng)聽(tīng)聽(tīng) 瑕佹壘鍒拌繖涓鏉? 灝辮鐢ㄥ埌Registry Workshop, 嫻忚鑷?br />HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\, 鐒跺悗鎵鏈夋潯鐩寜鏃墮棿鍊掑簭鎺掑簭, 涓?br />Visual Assist瀹夎鏃墮棿宸笉澶氱殑閭e嚑涓?3~10涓惂, 璺熷叿浣撴満鍣ㄦ湁鍏? 榪樻湁鍏朵粬鐨勮蔣浠跺惂)
閫愪竴媯(gè)鏌? 鏈変竴涓殑瀛愰」涓嶈鍒? 鑰屽叾浠栫殑閮芥瘮杈冭鍒? 濡?/p>
{ACABBB00-02A4-CF3E-B293-188330493F10}
聽(tīng)聽(tīng)聽(tīng) fMNvzvRluw
聽(tīng)聽(tīng)聽(tīng) paowhf
聽(tīng)聽(tīng)聽(tīng) Jvielmgrzqpm
聽(tīng)聽(tīng)聽(tīng) durvuNbfybvH
聽(tīng)聽(tīng)聽(tīng) Psohy
聽(tīng)聽(tīng)聽(tīng) wqGi
聽(tīng)聽(tīng)聽(tīng) zydrzwfqWyFs
聽(tīng)聽(tīng)聽(tīng) InProcServer32
鑰屽叾浠栫殑涓鑸槸
{XXXXXXXX...}
聽(tīng)聽(tīng)聽(tīng) Description
聽(tīng)聽(tīng)聽(tīng) InprocServer32
聽(tīng)聽(tīng)聽(tīng) ProgID
聽(tīng)聽(tīng)聽(tīng) VersionIndependentProgID
絳夌瓑, 瀹為檯涓婄洰鏍囬」{ACABBB00-02A4-CF3E-B293-188330493F10}鏄疺A鐨勬椂闂翠俊鎭褰? 褰撶劧
鍙湁VA鐨勪漢鐭ラ亾瀹冪殑鏍煎紡浜? 涓烘帺浜鴻崇洰, {ACABBB00-02A4-CF3E-B293-188330493F10} 鍙?br />鍚堝茍鍙﹀鐨勪竴涓殢鏈虹殑宸叉敞鍐岀殑CLSID, 鍥犳褰撲綘鐪嬪埌
{ACABBB00-02A4-CF3E-B293-188330493F10} 涓嬬殑 InprocServer32 濂藉儚鏄彟澶栫殑鏌愪釜鎰熻
寰堥噸瑕佺殑涓滆タ, 鎴戞兂, 濡傛灉浣犲湪 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\ 涓嬫悳绱㈢殑
璇? 搴旇鎼滃緱鍒板畠鐪熸鐨勬潯鐩?
聽(tīng)聽(tīng)聽(tīng) 鎵懼埌
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{ACABBB00-02A4-CF3E-B293-188330493F10
}鎴栬呬綘鏈哄櫒涓婄殑鐩稿簲欏瑰悗, 寤鴻鍔犲叆鏀惰棌澶?
聽(tīng)聽(tīng)聽(tīng) 3) 浣犵殑temp鐢ㄦ埛鍙橀噺%USERPROFILE%\Local Settings\Temp 涓殑涓存椂鏂囦歡
1489AFE4.TMP.
濡傛灉浣犵殑Temp鐢ㄦ埛鍙橀噺璁劇疆鍒頒簡(jiǎn)鍏朵粬鐨勫湴鏂?姣斿, 鎴戠殑鍦‵:\Temp\UTemp), 璇峰埌鐩稿簲鐨勪綅
緗壘鍒拌繖涓枃浠? 榪欎釜鏂囦歡鐨勪慨鏀規(guī)椂闂村拰鍒涘緩鏃墮棿閮戒笌VA瀹夎鏃墮棿鐩稿樊涓嶅. 鐩鎬俊涓嶉毦鎵懼埌
. 鍏蜂綋鐨勬枃浠跺悕鍙兘鍜岀増鏈浉鍏?
褰撶劧涔熷彲浠ユ妸姝ょ洰褰曞叏閮ㄦ竻絀? 涓鑸儏鍐典笅搴旇娌℃湁浠涔堥棶棰?
聽(tīng)聽(tīng)聽(tīng) 浠ヤ笂涓夊璁板綍鐨勪俊鎭簲璇ユ槸涓鏍風(fēng)殑, 鐮磋В鏃剁暀涓嬩換浣曚竴澶勯兘涓嶈兘鎴愬姛. 鍗歌澆VA鏃? 榪欎笁
澶勭殑淇℃伅閮戒繚鐣欑潃, 鍗歌澆VA鐒跺悗閲嶈鐨勫姙娉曟槸琛屼笉閫氱殑. 灝辯畻閲嶈緋葷粺, 濡傛灉浣犳妸temp鐢ㄦ埛
鍙橀噺鐩綍璁懼埌浠ュ墠鐨勪綅緗笖娌℃湁娓呯悊榪? 鍒欐敞鍐岃〃鏄叏鏂扮殑浼拌涔熸棤嫻庝簬浜?
聽(tīng)聽(tīng)聽(tīng) 涓嬮潰緇欎竴涓畝鍗曠殑鎵瑰鐞嗙殑渚嬪瓙, 鍙兘闇瑕佹牴鎹嚜宸辯殑鎯呭喌鍜岀増鏈慨鏀瑰叾涓殑涓浜涙暟鎹?/p>
聽(tīng)聽(tīng)聽(tīng) VAClean榪愯鏃惰鍏抽棴Visual Studio
####################### VAClean.cmd 寮濮?#######################
@echo off
rem 姝や袱欏硅鑷濉啓涓哄悎閫傜殑鍊?br />set cid={2401839D-8A0E-F7A3-3A39-201EB8E3078D}
set tpf="F:\Temp\UTemp\1489AFE4.TMP"
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Licenses /f
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\%cid% /f
del /q %tpf%
echo.
pause
####################### VAClean.cmd 緇撴潫 #######################
浠ヤ笂嫻嬭瘯鍩轟簬
Visual Assist X 10.3.1535.0
Visual Assist X 10.3.1534.0 (姝ゆ柟娉曚互鍓嶇殑鐗堟湰浠ュ強(qiáng)浠ュ悗鐨勮嫢騫蹭釜鐗堟湰鍙兘鏈夋晥)
浠ュ強(qiáng)
Visual C++ 6
Visual Studio 2005
浠ュ強(qiáng)
XP SP2
涓嬭澆:
http://www.wholetomato.com/downloads/VA_X_Setup1301.exe
http://www.wholetomato.com/downloads/VA_X_Setup1534.exe
http://www.wholetomato.com/downloads/VA_X_Setup1535.exe
--
鈥?鏉ユ簮:路姘存湪紺懼尯 http://newsmth.net路[FROM: 166.111.86.*]
闄勪歡: Registry_Workshop.rar (388 KB) 閾炬帴:
http://www.newsmth.net/att.php?p.99.950977.3575.rar
鍏ㄦ枃閾炬帴錛?a >http://www.newsmth.net/bbscon.php?bid=99&id=950977
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1258267
緙栧啓鑷繁鐨勪竴涓猵ing紼嬪簭,鍙互璇存槸璁稿浜鴻繄鍑虹綉緇滅紪紼嬬殑絎竴姝ュ惂!!榪欎釜ping紼嬪簭鐨勬簮浠g爜緇忚繃鎴戠殑淇敼鍜岃皟璇?鍩烘湰涓婂彲浠ュ彇浠indows涓嚜甯︾殑ping紼嬪簭. 鍚勪釜妯″潡鍚庨兘鏈夋垜鐨勮緇嗘敞閲婂拰淇敼鏃ュ織,甯屾湜鑳藉瀵瑰ぇ瀹剁殑瀛︿範(fàn)鏈夋墍甯姪!!
/*聽(tīng) 鏈▼搴忕殑涓昏婧愪唬鐮佹潵鑷狹SDN緗戠珯, 絎旇呭彧鏄仛浜?jiǎn)涓浜涙敼榪涘拰娉ㄩ噴! 鍙﹀闇瑕佹敞鎰忕殑鏄湪Build涔嬪墠,蹇呴』鍔犲叆ws2_32.lib搴撴枃浠?鍚﹀垯浼?xì)鎻惤C?error LNK2001:"鐨勯敊璇紒*/
/******************************************************************************\
| Version 1.1 淇敼璁板綍:聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) |
|聽(tīng)聽(tīng)聽(tīng) <1> 瑙e喅浜?jiǎn)socket闃誨鐨勯棶棰?浠庤岃兘澶熸紜湴澶勭悊瓚呮椂鐨勮姹?聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) |
|----------------------------------------------------------------------------------------------------|
| Version 1.2 淇敼璁板綍:聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) |
|聽(tīng)聽(tīng)聽(tīng) <1> 澧炲姞浜?jiǎn)鐢辩敤鎴锋帶鍒跺彂閫両CMP鍖呯殑鏁扮洰鐨勫姛鑳?鍗沖懡浠ょ殑絎簩涓弬鏁?.聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) |聽(tīng)聽(tīng)聽(tīng)
|聽(tīng)聽(tīng)聽(tīng) <2> 澧炲姞浜?jiǎn)瀵筽ing緇撴灉鐨勭粺璁″姛鑳?聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) |
\******************************************************************************/
#pragma pack(4)
#include
#include
#include
#define ICMP_ECHO 8
#define ICMP_ECHOREPLY 0
#define ICMP_MIN 8 // minimum 8 byte icmp packet (just header)
/* The IP header */
typedef struct iphdr {
unsigned int h_len:4; // length of the header
unsigned int version:4; // Version of IP
unsigned char tos; // Type of service
unsigned short total_len; // total length of the packet
unsigned short ident; // unique identifier
unsigned short frag_and_flags; // flags
unsigned char ttl;
unsigned char proto; // protocol (TCP, UDP etc)
unsigned short checksum; // IP checksum
unsigned int sourceIP;
unsigned int destIP;
}IpHeader;
//
// ICMP header
//
typedef struct icmphdr {
BYTE i_type;
BYTE i_code; /* type sub code */
USHORT i_cksum;
USHORT i_id;
USHORT i_seq;
/* This is not the std header, but we reserve space for time */
ULONG timestamp;
}IcmpHeader;
#define STATUS_FAILED 0xFFFF
#define DEF_PACKET_SIZE聽(tīng)聽(tīng)聽(tīng) 32
#define DEF_PACKET_NUMBER聽(tīng) 4聽(tīng)聽(tīng)聽(tīng) /* 鍙戦佹暟鎹姤鐨勪釜鏁?*/
#define MAX_PACKET 1024
#define xmalloc(s) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,(s))
#define xfree(p) HeapFree (GetProcessHeap(),0,(p))
void fill_icmp_data(char *, int);
USHORT checksum(USHORT *, int);
int decode_resp(char *,int ,struct sockaddr_in *);
void Usage(char *progname){
fprintf(stderr,"Usage:\n");
fprintf(stderr,"%s [number of packets] [data_size]\n",progname);
fprintf(stderr,"datasize can be up to 1Kb\n");
ExitProcess(STATUS_FAILED);
}
int main(int argc, char **argv){
WSADATA wsaData;
SOCKET sockRaw;
struct sockaddr_in dest,from;
struct hostent * hp;
int bread,datasize,times;
int fromlen = sizeof(from);
int timeout = 1000;
int statistic = 0;聽(tīng) /* 鐢ㄤ簬緇熻緇撴灉 */聽(tīng)
char *dest_ip;
char *icmp_data;
char *recvbuf;
unsigned int addr=0;
USHORT seq_no = 0;
if (WSAStartup(MAKEWORD(2,1),&wsaData) != 0){
fprintf(stderr,"WSAStartup failed: %d\n",GetLastError());
ExitProcess(STATUS_FAILED);
}
if (argc <2 ) {
Usage(argv[0]);
}
sockRaw = WSASocket(AF_INET,SOCK_RAW,IPPROTO_ICMP,NULL, 0,WSA_FLAG_OVERLAPPED);
//
//娉細(xì)涓轟簡(jiǎn)浣跨敤鍙戦佹帴鏀惰秴鏃惰緗?鍗寵緗甋O_RCVTIMEO, SO_SNDTIMEO)錛?
//聽(tīng)聽(tīng)聽(tīng) 蹇呴』灝嗘爣蹇椾綅璁句負(fù)WSA_FLAG_OVERLAPPED !
//
if (sockRaw == INVALID_SOCKET) {
fprintf(stderr,"WSASocket() failed: %d\n",WSAGetLastError());
ExitProcess(STATUS_FAILED);
}
bread = setsockopt(sockRaw,SOL_SOCKET,SO_RCVTIMEO,(char*)&timeout,
sizeof(timeout));
if(bread == SOCKET_ERROR) {
fprintf(stderr,"failed to set recv timeout: %d\n",WSAGetLastError());
ExitProcess(STATUS_FAILED);
}
timeout = 1000;
bread = setsockopt(sockRaw,SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout,
sizeof(timeout));
if(bread == SOCKET_ERROR) {
fprintf(stderr,"failed to set send timeout: %d\n",WSAGetLastError());
ExitProcess(STATUS_FAILED);
}
memset(&dest,0,sizeof(dest));
hp = gethostbyname(argv[1]);
if (!hp){
addr = inet_addr(argv[1]);
}
if ((!hp) && (addr == INADDR_NONE) ) {
fprintf(stderr,"Unable to resolve %s\n",argv[1]);
ExitProcess(STATUS_FAILED);
}
if (hp != NULL)
memcpy(&(dest.sin_addr),hp->h_addr,hp->h_length);
else
dest.sin_addr.s_addr = addr;
if (hp)
dest.sin_family = hp->h_addrtype;
else
dest.sin_family = AF_INET;
dest_ip = inet_ntoa(dest.sin_addr);
//
//聽(tīng) atoi鍑芥暟鍘熷瀷鏄? int atoi( const char *string );
//聽(tīng) The return value is 0 if the input cannot be converted to an integer !
//
if(argc>2)
{
聽(tīng)times=atoi(argv[2]);
聽(tīng)if(times == 0)
聽(tīng) times=DEF_PACKET_NUMBER;
}
else
聽(tīng)聽(tīng)聽(tīng) times=DEF_PACKET_NUMBER;
if (argc >3)
{
聽(tīng)datasize = atoi(argv[3]);
聽(tīng)聽(tīng)聽(tīng) if (datasize == 0)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) datasize = DEF_PACKET_SIZE;
聽(tīng)if (datasize >1024)聽(tīng)聽(tīng) /* 鐢ㄦ埛緇欏嚭鐨勬暟鎹寘澶у皬澶ぇ */
聽(tīng){
聽(tīng) fprintf(stderr,"WARNING : data_size is too large !\n");
聽(tīng) datasize = DEF_PACKET_SIZE;
聽(tīng)}
}
else
聽(tīng)聽(tīng)聽(tīng) datasize = DEF_PACKET_SIZE;
datasize += sizeof(IcmpHeader);
icmp_data = (char*)xmalloc(MAX_PACKET);
recvbuf = (char*)xmalloc(MAX_PACKET);
if (!icmp_data) {
fprintf(stderr,"HeapAlloc failed %d\n",GetLastError());
ExitProcess(STATUS_FAILED);
}
memset(icmp_data,0,MAX_PACKET);
fill_icmp_data(icmp_data,datasize);
//
//鏄劇ず鎻愮ず淇℃伅
//
fprintf(stdout,"\nPinging %s ....\n\n",dest_ip);
for(int i=0;i{
int bwrote;
((IcmpHeader*)icmp_data)->i_cksum = 0;
((IcmpHeader*)icmp_data)->timestamp = GetTickCount();
((IcmpHeader*)icmp_data)->i_seq = seq_no++;
((IcmpHeader*)icmp_data)->i_cksum = checksum((USHORT*)icmp_data,datasize);
bwrote = sendto(sockRaw,icmp_data,datasize,0,(struct sockaddr*)&dest,sizeof(dest));
if (bwrote == SOCKET_ERROR){
if (WSAGetLastError() == WSAETIMEDOUT) {
printf("Request timed out.\n");
continue;
}
fprintf(stderr,"sendto failed: %d\n",WSAGetLastError());
ExitProcess(STATUS_FAILED);
}
if (bwrote < datasize ) {
fprintf(stdout,"Wrote %d bytes\n",bwrote);
}
bread = recvfrom(sockRaw,recvbuf,MAX_PACKET,0,(struct sockaddr*)&from,&fromlen);
if (bread == SOCKET_ERROR){
if (WSAGetLastError() == WSAETIMEDOUT) {
printf("Request timed out.\n");
continue;
}
fprintf(stderr,"recvfrom failed: %d\n",WSAGetLastError());
ExitProcess(STATUS_FAILED);
}
if(!decode_resp(recvbuf,bread,&from))
聽(tīng)statistic++; /* 鎴愬姛鎺ユ敹鐨勬暟鐩?+ */
Sleep(1000);
}
聽(tīng)
/*
Display the statistic result
*/
fprintf(stdout,"\nPing statistics for %s \n",dest_ip);
fprintf(stdout,"聽(tīng)聽(tīng)聽(tīng) Packets: Sent = %d,Received = %d, Lost = %d (%2.0f%% loss)\n",times,
聽(tīng)聽(tīng)聽(tīng)聽(tīng) statistic,(times-statistic),(float)(times-statistic)/times*100);
WSACleanup();
return 0;
}
/*
The response is an IP packet. We must decode the IP header to locate
the ICMP data
*/
int decode_resp(char *buf, int bytes,struct sockaddr_in *from) {
IpHeader *iphdr;
IcmpHeader *icmphdr;
unsigned short iphdrlen;
iphdr = (IpHeader *)buf;
iphdrlen = (iphdr->h_len) * 4 ; // number of 32-bit words *4 = bytes
if (bytes < iphdrlen + ICMP_MIN) {
printf("Too few bytes from %s\n",inet_ntoa(from->sin_addr));
}
icmphdr = (IcmpHeader*)(buf + iphdrlen);
if (icmphdr->i_type != ICMP_ECHOREPLY) {
fprintf(stderr,"non-echo type %d recvd\n",icmphdr->i_type);
return 1;
}
if (icmphdr->i_id != (USHORT)GetCurrentProcessId()) {
fprintf(stderr,"someone else's packet!\n");
return 1;
}
printf("%d bytes from %s:",bytes, inet_ntoa(from->sin_addr));
printf(" icmp_seq = %d. ",icmphdr->i_seq);
printf(" time: %d ms ",GetTickCount()-icmphdr->timestamp);
printf("\n");
return 0;
}
USHORT checksum(USHORT *buffer, int size) {
unsigned long cksum=0;
while(size >1) {
cksum+=*buffer++;
size -=sizeof(USHORT);
}
if(size) {
cksum += *(UCHAR*)buffer;
}
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >>16);
return (USHORT)(~cksum);
}
/*
Helper function to fill in various stuff in our ICMP request.
*/
void fill_icmp_data(char * icmp_data, int datasize){
IcmpHeader *icmp_hdr;
char *datapart;
icmp_hdr = (IcmpHeader*)icmp_data;
icmp_hdr->i_type = ICMP_ECHO;
icmp_hdr->i_code = 0;
icmp_hdr->i_id = (USHORT)GetCurrentProcessId();
icmp_hdr->i_cksum = 0;
icmp_hdr->i_seq = 0;
datapart = icmp_data + sizeof(IcmpHeader);
//
// Place some junk in the buffer.
//
memset(datapart,'E', datasize - sizeof(IcmpHeader));
}
/******************* 闄? ping鍛戒護(hù)鎵ц鏃舵樉紺虹殑鐢婚潰 ***************\
*聽(tīng) C:\Documents and Settings\houzhijiang>ping 236.56.54.12聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Pinging 236.56.54.12 with 32 bytes of data:聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Request timed out.聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Request timed out.聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Request timed out.聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Request timed out.聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Ping statistics for 236.56.54.12:聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng)聽(tīng)聽(tīng)聽(tīng) Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
\*********************************************************/
/*********************************************************\
*聽(tīng) C:\Documents and Settings\houzhijiang>ping 127.0.0.1聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Pinging 127.0.0.1 with 32 bytes of data:聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Reply from 127.0.0.1: bytes=32 time<1ms TTL=128聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Reply from 127.0.0.1: bytes=32 time<1ms TTL=128聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Reply from 127.0.0.1: bytes=32 time<1ms TTL=128聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Reply from 127.0.0.1: bytes=32 time<1ms TTL=128聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Ping statistics for 127.0.0.1:聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng)聽(tīng)聽(tīng)聽(tīng) Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng) Approximate round trip times in milli-seconds:聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng)聽(tīng)聽(tīng)聽(tīng) Minimum = 0ms, Maximum = 0ms, Average = 0ms聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
*聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *
\********************************************************/