2007年12月22日星期六

【VB】对话框译文

Show the "Save File" Common Dialog

显示"保存文件"对话框

Show the "Browse Folder" Common Dialog

显示"浏览文件夹"对话框

Suspend a Computer

挂起计算机

Test if an application is responding and terminate application

测定一个应用程序是响应还是终止(IE为例)

Test if an application is responding and terminate application

(续:)测定一个应用程序是响应还是终止

Format a floppy disk

格式化软盘

Zero a portion of an array

清零一个数组

Determine the free space on a drive

测定驱动器上的空闲空间

Edit the files stored in the "Documents" menu

编辑保存在文档菜单的文件

Copy files using the File Copy Shell

使用File Copy Shell拷贝文件

Show the "File Open" Common Dialog

显示"文件打开"对话框

Converting Class IDs to a Prog IDs and back

转变class ID到一个prog ID

Obtaining the current user name

获得当前用户名

Return the path of the temporary directory

返回临时目录的路径

Return the path of the windows directory

返回windows目录的路径

Return the path of the system directory

返回system目录的路径

Create a GUID

创建一个GUID

Enable and Disable the windows task bar

激活和禁止windows任务条

Determining the system folder locations

设定system文件夹的位置

Obtaining information about the operating system

获得操作系统的信息

Find the path of the executable associated with a file

找到文件的完整路径

Locking the application screen area

锁住应用程序客户区。

Lock All GUI updating

阻止所有的GUI更新

Changing the screen resolution/colors

改变screen颜色

Convert a pointer to a string into a string

返回指向的字符串

Associate a file with a file extension

给文件扩展名关联打开文件

Shutdown/restart/logoff the local machine

关机,重启动,注销,本地计算机

Display the "Setup Prompt for Disk" dialog

显示"Setup Prompt for Disk"对话框

Display the "Setup Reboot" dialog

显示"Setup Reboot"对话框

Perform a recursive search for a file or pattern using API

使用api递归查找文件

Block keyboard and mouse input to an application

一个阻塞键盘和鼠标输入的应用程序

Return a dialog handle/class name from a caption

从标题栏里返回对话框的句柄名

Restrict the movement of a cursor to a specified area

限制鼠标指针的运动区域

Encrypt a file/folder (Windows 2000)

加密文件/文件夹(Windows 2000适用)

Setting the tab positions in a listbox

在列表框里设置tab的位置

Find an item in a listview

查找列表框的一项

Get a list of file version details for OCX, EXE and DLL files

得到一个OCX, EXE and DLL 文件的详细版本信息

Get and set a dialogs caption/title

取得和设置一个对话框标题

Controlling the clipboard (inc. clear, copy and query)

控制剪贴板

Get and set the list area width of a combo box

得到和设置一个组合框的列表宽度

Change to priority level of the current process

改变当前线程的优先级

Show the "System Settings Changed, Restart Computer?" dialog

显示"System Settings Changed, Restart Computer?"对话框

Creating new threads to perform asynchronous tasks

创建一个新的线程执行异步任务

Get and set volume information for a drive

得到和设定驱动器的卷信息

Using the ShellExecute API to send mails and print documents

使用ShellExecute API发送email和打印文档

Get the error message associated with and API error number

API error 号表示错误消息

Save a screen snapshot to a bitmap

bitmap格式保存一个屏幕快照。

Load and Save Images to a Database

在数据库里读出和保存图象

Changing a files created, modified and accessed times.

改变文件创建和修改,保存时间

Changing a files created, modified and accessed times.

()改变文件创建和修改,保存时间

Show system shut down/restart dialog

显示系统,关闭/重启 对话框

Checking to see if an application is already running

检查应用程序是否已运行

Search a folder (and all it''''s subfolders) for a file

在一个文件夹里搜查一个文件

Create a name for a temporary file

为临时文件创建一个名城

View the contents of a block of memory

显示某块内存的内容

List/Enumerate all the OCX Controls installed on a computer

列举安装在计算机里的所有ocx控件

Returning an ExitCode parameter from an out of process application

从外部应用程序返回参数

Check if a loggin password and user name are correct

检查当前登录的密码和用户名是不是正确的。

Removing an item from a 1d array

在一维数组中移动一个元素

Changing the type of input a textbox can receive

改变文本框输入的类型(比如只能输入数字)

Changing the way a form is repainted while being dragged

改变拖动时窗口的重画方式

Terminate a Process

终止一个进程

Making a textbox resizable

建立可变尺寸的文本框

Swap the left and right mouse buttons over

按下按钮交换左由鼠标键。

Controlling the position of a MsgBox

控制MsgBox函数弹出消息框的位置

Returning the windows handle of a dialog at a specified point

返回指向对话框的句柄

Returning a files creation time

返回文件的创建时间

Adding custom system menu items to forms

给窗体加上定制的系统菜单

Register Components without using Regsvr32.exe

不使用Regsvr32.exe注册组件

Uncover internal DLL functions with Dependency Walker

公布内部调用的dll函数

Launch a PC''''s default browser with ShellExecute API

ShellExecute API函数启动默认的浏览器

Get File Version Information Details (OCX, EXE, DLL etc)

得到详细的文件版本信息

Create a timer using API calls

使用api创建一个时钟。

Play an audio file

播放音频文件

Set and get a Computer''''s name

设置和得到计算机名

Shell and wait for a process to finish

启动并等待一个进程结束

Make the current process pause/sleep for a specified time period

指定当前进程挂起时间

Determine system memory status

测定系统的内存状态

Send files to the Recycle bin

把文件送入回收站

Get a list of the system processes

得到系统进程的列表

Redim Preserve a 2d array

重定义2维数组

Turn the Screen Saver on or off

启动或禁止Screen Saver

Return the error message associated with Err.LastDllError

返回带Err.LastDllError的错误消息

Turn the monitor on and off

启动或禁止监视器

Show the "Choose a Color" Common Dialog

显示"选择颜色"对话框

Show the "Select a Font" Common Dialog

显示"选择字体"对话框

Show the Windows "Run" Dialog

显示windows"运行"对话框

Change Date Format of the system

改变系统的日期格式

Change your Novell Password

改变你的Novell密码

Shutdown your computer using ExitWindowEx API Call

使用ExitWindowEx API 关闭你的计算机

Adding AutoComplete to a VB Text Box

VB文本框加入自动完成功能

drop Down Combo box as it get focus

当组合框得到焦点时下拉组合框列表

this makes form transperent only controls are visible

制作仅控件可见的透明窗体

Map and Unmap network drives using Windows "Map Network Drives" dialog

使用Windows "Map Network Drives"对话框映射和不映射网络驱动器

Simple Code to Map a Network Drive

映射一个网络驱动器的简单代码

Get your Computer name using GetComputerName API

使用GetComputerNameapi得到你的计算机名

Get your windows system directory using GetSystemDirectory API

使用GetSystemDirectory API得到windows的系统目录

Get your windows temp directory using GetTempPath API

使用GetTempPath API得到windows的临时目录

Get your windows directory using GetWindowsDirectory API

使用GetWindowsDirectory API得到windows目录

Set your computer name using SetComputerName API

使用SetComputerName API设置你的计算机名

Clear the recent documents menu using SHAddToRecentDocs API

使用SHAddToRecentDocs API清除最近的文档菜单

Add a file to recent documents menu using SHAddToRecentDocs API

使用SHAddToRecentDocs API加一个文件到最近的文档菜单

To show/hide cursor using

显示/隐藏鼠标指针。

Swap the mouse button using SwapMouseButton API

使用SwapMouseButton API交换鼠标按钮

Connect or disconnect a network drive

连接或断开网络驱动器

Connect or disconnect a LPT port

连接或断开一个LPT端口

Display the windows About Box using ShellAbout API

使用ShellAbout API函数显示windows关于对话框

Get logged in username using GetUserName API

使用GetUserName API得到登录者的用户名

Get network logged in username using WNetGetUser API

使用WNetGetUser API得到网络的登录用户名

Copy a file using CopyFile API

使用CopyFile API copy一个文件

Move a file using MoveFile API

使用MoveFile API移动一个文件

Some API funcitons to move, hide/show the mouse

一些API函数,移动,隐藏/显示鼠标

This Includes ALL of Karthikeyans API Code into module-type procedures.

在模块里包括所有的Karthikeyans API代码

Some API functions for hiding/showing/moving the mouse, etc... enjoy.

一些API函数隐藏/显示/移动 鼠标等等。

Code to Display the % of Memory in Use

显示内存使用%的例子

choose the frequency and duration of sounds from the internal speaker

选择频率和持续时间,让内置扬声器发声

Put your application to sleep for a certain number of milliseconds.

让你的应用程序睡眠指定的秒数

Find out whether or not a laptop is running on battery power and if so how much battery time is remaining.

测定手提式电脑是否在使用电池运行,并且测试出它的剩于电池量

Find out the processor type of a system and the total number of processors in a machine

测定系统的cpu类型,和机器里cpu的个数。

Find Files using FindFirstFile,FindNextFile and FindClose API

使用FindFirstFile,FindNextFile and FindClose API查找文件

Show,Hide,Maximize,Minimize,Restore and more with ShowWindow API

ShowWindow API显示隐藏最大化最小化恢复。

Set window text using SetWindowText API

使用SetWindowText API设置控件窗口的文本

Set Disk Volume Label using SetVolumeLabel API

使用SetVolumeLabel API设置磁盘卷标

Set System Cursor using SetSystemCursor API

使用SetSystemCursor API设置系统鼠标

Get File Attributes using GetFileAttributes API

使用GetFileAttributes API得到文件属性

Set File atrributes using SetFileAttributes API

使用SetFileAttributes API设置文件属性

Get Environment Variable using GetEnvironmentVariable using API

使用GetEnvironmentVariable API得到环境变量

Set Environment Variable using SetEnvironmentVariable API

使用SetEnvironmentVariable API设置环境变量。

Remove Directory using RemoveDirectory API

使用RemoveDirectory API移动目录

Create Directory using CreateDirectory API

使用CreateDirectory API创建目录

Play system sounds using MessageBeep API

使用MessageBeep API播放系统声音

Get Current Greewich Mean Time using GetSystemTime API

使用GetSystemTime API得到当前的Greewich时间

Set System Time using SetSystemTime API

使用SetSystemTime API设置系统时间

Set double click time of mouse using SetDoubleClickTime API

使用SetDoubleClickTime API设置鼠标的双击间隔速度

Get double click time of mouse using GetDoubleClickTime API

使用GetDoubleClickTime API得到鼠标的双击间隔速度

Delete a File using DeleteFile API

使用DeleteFile API删除文件

Get Volume Information of disk drive using GetVolumeInformation API

使用GetVolumeInformation API得到磁盘驱动器的卷标信息

To check whether particular drive is present or not using GetLogicalDrives API

使用GetLogicalDrives API检查驱动器

Get the amount of physical and virtual memory free,used using GlobalMemoryStatus API

使用GlobalMemoryStatus API得到空闲物理和虚拟内存数。

Get current resolution,number of colors and bits/pixels using GetDeviceCaps API

使用GetDeviceCaps API得到当前分辨率颜色数和象素。

Check whether sound card is installed or not using waveOutGetNumDevs API

使用waveOutGetNumDevs API检查声卡是否安装

Check whether network is installed or not using GetSystemMetrics API

使用GetSystemMetrics API检查网络是否安装

Check whether mouse is installed or not using GetSystemMetrics API

使用GetSystemMetrics API检查鼠标是否安装

Get default Icon Width using GetSystemMetrics API

使用GetSystemMetrics API得到缺省图标的宽度

Get current resolution using GetSystemMetrics API

使用GetSystemMetrics API得到当前的分辨率。

Check how your windows booted using GetSystemMetrics API

使用GetSystemMetrics API检查你的windows启动模式

Returns the height and width in pixels of a string based on the current font characteristics

用象素单位返回当前特征字串的高和宽。

Extract,Draw and Destroy Icon using ExtractIcon,DrawIcon and DestroyIcon API

使用ExtractIcon,DrawIcon DestroyIcon API提取画和销毁图标。

Get details about your OS using GetVersionEx API

使用GetVersionEx API得到你的操作系统的详细信息

Writing a string data into WIN.INI using WriteProfileString API

使用WriteProfileString API写字符数据到win.ini

Get a string data from WIN.INI using GetProfileString API

使用GetProfileString APIwin.ini得到字符数据

Get a integer data from WIN.INI using GetProfileInt API

使用GetProfileInt APIwin.ini,得到一个整型数据

Write a string data to an INI file using WritePrivateProfileString API

使用WritePrivateProfileString API写一个字符数据到一个ini文件

Write a section of data to an INI file using WritePrivateProfileSection API

使用WritePrivateProfileSection API写部分数据到一个ini文件

Get an integer data from an INI file using GetPrivateProfileInt API

使用GetPrivateProfileInt APIINI文件得到整型数据

Get a string data from an INI file using GetPrivateProfileString API

使用GetPrivateProfileString APIini文件得到字符数据

Get the length of a string using

得到使用的字符串的长度

Copy a string to another variable using lstrcpy API

使用lstrcpy API拷贝字串到别的类型变量

Copy n-1 number of characters from source string to the target string using lstrcpyn API

使用lstrcpyn API从源字串copy n-1特征字符数到目标字串。

Display Shutdown dialog screen using ExitWindowsDialog API

使用ExitWindowsDialog API显示关闭屏障对话框

Display shutdown dialog screen using SHShutDownDialog API

使用SHShutDownDialog API显示关闭屏障对话框。

Display the restart or shutdown dialog using RestartDialog API

使用RestartDialog API显示重启或关闭对话框

Display shutdown or restart dialog using SHRestartSystemMB API

使用SHRestartSystemMB API显示关闭或重启对话框

Display the run dialog using SHRunDialog API

使用SHRunDialog API显示运行对话框

Display Format drive dialog using SHFormatDrive API

使用SHFormatDrive API显示格式化对话框

Display change icon dialog using SHChangeIconDialog API

使用SHChangeIconDialog API显示改变图标对话框

Display pick icon dialog using PickIconDlg API

使用PickIconDlg API显示挑选图标对话框

Get Shell Folders locations using SHGetSpecialFolderLocation API

使用SHGetSpecialFolderLocation API得到Shell文件夹位置

Flash a window using FlashWindow API

使用FlashWindow API闪动窗口

Get classname for some controls using GetClassName API

使用GetClassName API得到一些控件的类名

Get Current Process and Current ProcessID using GetCurrentProcess and GetCurrentProcessId API

使用GetCurrentProcess and GetCurrentProcessId API得到当前ProcessProcessID

Get Current Thread and Current Thread ID using GetCurrentThread and GetCurrentThreadId API

使用GetCurrentThread and GetCurrentThreadId API得到当前ThreadThread ID

Get Cursor Position using GetCursorPos API

使用GetCursorPos API得到鼠标位置。

Get foreground window using GetForegroundWindow API. Very useful to develop security programs and system logger programs

使用GetForegroundWindow API得到最前的窗口对于开发安全程序和系统程序很有用

Find a window knowing it''''s caption using FindWindow API

使用FindWindow API查找窗口并获知它的标提

Get Background color of a device context using GetBkColor API

使用GetBkColor API得到设备上下文使用的背景颜色

Get the caption of control which captures mouse event using GetCapture API

使用GetCapture API捕获鼠标事件。得到控件标题

Get system colors using GetSysColor API

使用GetSysColor API得到系统颜色

Set system colors using SetSysColors API

使用SetSysColors API设置系统颜色

Create a Elliptic Form using CreateEllipticRgn and SetWindowRgn API

使用CreateEllipticRgn and SetWindowRgn API创建椭圆形窗体

Create a Rectangular Form using CreateRectRgn and SetWindowRgn API

使用CreateRectRgn and SetWindowRgn API创建矩形窗体

Create a Round Rectangular Form using CreateRoundRectRgn and SetWindowRgn API

使用CreateRoundRectRgn and SetWindowRgn API创建圆矩形窗体

Get File information by it''''s Handle using GetFileInformationByHandle API

使用GetFileInformationByHandle API通过它的句柄得到文件信息

Get filetime using GetFileTime API

使用GetFileTime API得到文件时间

Set filetime using SetFileTime API

使用SetFileTime API设置文件时间

Set the File modified time to Current System Time using GetSystemTimeAsFileTime API

使用 GetSystemTimeAsFileTime API设置文件修改时间到当前系统时间

Get window position points using GetWindowRect API

使用GetWindowRect API得到窗口位置

Get Foreground Window Thread and Process ID using GetWindowThreadProcessId API

使用GetWindowThreadProcessId API得到前端窗体线程和进程的ID

Get current directory using GetCurrentDirectory API

使用GetCurrentDirectory API得到当前的目录。

Set Current directory using SetCurrentDirectory API

使用SetCurrentDirectory API设置当前的目录

Get handle of the window at mouse cursor position using WindowFromPoint API

使用WindowFromPoint API得到鼠标指向窗体的句柄。

Get a list of Open Window Names using GetDesktopWindow,GetWindow and GetWindowText API

使用GetDesktopWindow,GetWindow and GetWindowText API得到打开的窗口列表

Creates a icon in your System tray which minimizes all your applications when you double click it(icon in SysTray).

当你双击它最小化你的应用程序时,创建你的系统拖盘。

Display a message box using MessageBox API

使用MessageBox API显示一个消息框

Display Message Box using MessageBoxIndirect API

使用MessageBoxIndirect API显示一个消息框

Open the start menu using mouse_event API

使用mouse_event API打开开始菜单

Function CurrentTime. Returns the COMPLETE system time, including milliseconds (something VB''''s date/time func doesn''''t do).

CurrentTime函数返回完整的系统时间包括毫秒

An example for MulDiv API

一个使用MulDiv API的例子

Type some words in notepad without human intervention using keybd_event API

使用keybd_event API不需人干预打些单词到写字板里

Move a window to a specified point using MoveWindow API

使用MoveWindow API移动一个窗口到指定的点。

Get Drive Type using GetDriveType API

使用GetDriveType API得到驱动器类型

Set your Window on top of all forms using SetWindowPos API

使用SetWindowPos API把你的程序窗口在所有窗口中设置为最顶端。

Get File information is using SHGetFileInfo API

使用SHGetFileInfo API得到文件信息

Draw an Arc using Arc API

画弧线使用Arc API

Draw a chord using Chord API

画一个闭合弦使用Chord API

Draw a line from a point to specified point using LineTo API

画一个线条从一个点到另一个指定点。使用LineTo API

Draw a pie using Pie API

使用Pie API画饼图

Get the window which has got focus using GetFocus API

使用GetFocus API判断那个窗体得到焦点

Get the Entire command line passed using GetCommandLine API

得到完整的命令行

Capture desktop using GetDesktopWindow and BitBlt API

捕获桌面使用GetDesktopWindow and BitBlt API

Capture the window under mouse into the form using GetDC,BitBlt,GetCursorPos and WindowFromPoint API

使用GetDC,BitBlt,GetCursorPos and WindowFromPoint API捕获鼠标下面的窗口到一个窗体中

A simple code to catch any keypress and store it in a file named "file.txt" It runs in the background.

一个简单的代码,捕获键盘消息并且保存到文件名"file.txt",它是运行在后台的。

This code finds a window and sends message to the window.

这个代码是找到一个窗口并发送消息给窗口

This code brings a file from remote server to the client without asking the "Save to disk" dialog box.

这个代码从远程主机保存文件到客户机不出现"Save to disk"对话框。

Controlling carat blinking speed using API

使用API控制克拉闪亮的速度

This code puts your project icon in the system tray.

放工程图标到系统拖盘中。

Code to Check the Mode in which Windows is Loaded

检查windows的引导模式

Sets the time on the local machine.

设定本地机的时间

The following Code Helps To refresh Desktop using a different approach

这个代码使用一种不同的途径来更新桌面

This code initiates the screen saver of the system.

启动计算机系统的屏幕保护

Allows you to paint the system stock icons onto your form

在窗体上绘制系统托盘图标

Finds Hard-Drive Capacity. Will work with any size of drive.

发现硬盘的容量,在任何大小的驱动器上都可正常工作

Finds all Drives Free Space and Capacity

找出所有驱动器空闲的空间和容量

This code is useful when you are getting your logon user with domain name

这个代码很有用,当你正在获取你的登录帐号时

Did you ever wanted to create your own dll with api function export

API函数创建自己的DLL

This code will grab any window text box text from any aplication running on windows 32 bit

这个代码可以从任意的windows32位应用程序中获取文本框中的文本

Code to Get the Number of Function Keys in the KeyBoard

得到键盘键数的代码

This code gives the length of alphabets and numbers in pixels

这个代码给出了字母表的长度

This simple program loads or removes any FONT from a specified path & file name

从指定的路径和文件名中载入或删除字体

Get Cached Passwords from the PWL File

PWL文件中得到其保存的密码

Yet Another CenterForm Routine

另一个中心窗体

Code to Set a Animated Cursor(ani) as the MousePointer for the Form

为一个窗体设置一个动画鼠标指针。

Another Get-Set Key state program

另一个得到键盘状态的程序

Allways wanted to make your program hidden in that annoying Ctrl+Alt+Del(Tested on windows 9x)

使用简单的一行代码,让你的程序在Ctrl+Alt+Del中隐藏。

Make your CD-ROM drive open using the mciSendString API.

使用mciSendString API打开你的CD-ROM驱动器

copy a file to your windows desktop from dialog control box.

通过对话框控件拷贝一个文件到你的windows桌面

Shut down the computer

关闭计算机

for viewing the desktop with some magnification according to the moving of mouse

根据鼠标的移动查看桌面

Hide mouse pointer

隐藏鼠标指针

Control the speed of the Start Menu.

控制开始菜单的速度

【API】VB API初级入门

一、API是什么? 

 

  这个我本来不想说的,不过也许你知道其它人不知道,这里为了照顾一下新手,不得不说些废话,请大家谅解。 

 

  Win32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。 

 

  使用Win32 API,应用程序可以充分挖掘Windows32位操作系统的潜力。Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。 

 

   

  以上为API的相关介绍,不过有些新手看了以后可能还是不怎么明白API到底有什么用?这里请不要着急,如果你有足够耐心的话,请慢慢往下看。 

 

二、如何使用API 

 

  估计这才是大家真正关心的,那么如何使用API呢?在了解API之前,先打开你的VB书,翻到过程函数这章来,在搞清楚API之前应该先搞懂过程函数是怎么一回事!如果你还不知道过程的工作方式,那么请先不要急着往下看,那样容易走很多弯路。 

 

  好了,当你理解了过程函数时,也就是你可以使用API的时候了,别把API看得太难,你就像使用过程函数一样使用API就可以了。首先,让我们看看一个简单的API,以下: 

 

  Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) 

 

  以上这个API的呢是起一个延时作用。你如果是刚接触API的话可能会感到API的书写及其复杂,而且会感到很不适应。其实这没什么的,慢慢习惯就好了。至于API这些复杂的书写你就不用操心了,在你安装VB的时候微软已经帮我们带上了API浏览器,这些全部都可以利用API浏览器帮我们自动生成。 API浏览器的位置位于[开始菜单-程序-Microsoft Visual Basic 6.0 中文版-Microsoft Visual Basic 6.0 中文版工具-API 文本浏览器]。打开API浏览器,在最上面的一个文本框中输入Sleep,这时下面列表框中就会自动显示相应的API函数,然后点右边添加按钮即可,接着点击复制按钮,这时你就可以用Ctrl+V把声明的API添加到VB代码窗口中了。 

 

  这里我要说一下,有些新手可能还弄不明白。 API的声明范围一般有两种模式,一种是Private(私有的),一种是Public(公用的)。一般Private是声明在类模块或窗体类中, Public声明在模块中。你在添加API的时候,添加按钮下面就有API的声明范围,可以根据自己的需要进行添加。这里我们一般选择私有的 (Private)就可以了。 

 

  经过上面,我们知道如何添加API,接着我们分析一下API声明,这是你了解API必备的。首先看第一个单词Private,很显然,我上面刚刚讲过,这是申明一个私有的API变量。再看第二个Declare,这个单词帮我们告诉VB是在申明API函数,一般申明外在的API函数时都必须带上这个单词。第三个Sub,别告诉我你不知道什么意思?这就是我叫你先学习VB中过程函数的意思,这个说白了就是没有反回值,一般如果不是Sub而是Function都带有反回值的。第四个Lib,这个是告诉VB我们要声明哪一个DLL中的API函数,也就是告诉 VB我们要申明第五个单词kernel32.dLL中的API,一般写DLL名称时都要用双引号括起来,如"user32""shell32.dll" 等,至于后面的.dll这个可以带可不带。再来看第六个Alias,这个也是需要同后面一个一起用的,我们应该把第六个和第七个连起来一起看Alias "Sleep",这个意思表示将被调用的过程在DLL中还有另外的名称,这个是可选的。最后括号里面的,也就是和过程函数一样,你传入相应的值就可以了。  

 

  上面我们分析完API函数声明以后,接着我们就要自己动手写代码了。先把这个API复制到Form1代码窗口中,然后写如下代码: 

 

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 

Private Sub Form_Load() 

     Sleep 2000 

End Sub 

 

  解释一下也就是在窗体启动时使用Sleep API进行延时2后面的参数dwMilliseconds是表示你要延时的秒数基本上和设置Timer中的秒数一样。你再看一下Sleep  2000的使用方式是不是和使用VB过程函数一样呢好了我们的第一个VB API程序写完了可以看到使用API并不是一件很难的事。 

 

三、如何才能提升你对API的学习兴趣? 

 

  API,我常把它看做成过程函数,不过每人都有每人的见解和理解方式,自己的理解方式只要可以帮助自己更好的学习和掌握API,也没必要一定要学习他人的。 

 

  1,自己做MsgBox 

 

  了解API参数的使用方法是很重要的,这里我们不用VBMsgBox,直接使用API弹出MsgBox消息框。首先,打开API浏览器,选择 MessageBox,大家可以用这个APIVB内置的MsgBox比较一下,其实MsgBox也就是MessageBox的缩写,只不过一个是 API,一个是VB内置的,但两者都是通过API进行工作的。好了,选择私有声明方式,粘贴到VB代码编辑窗口中,然后新建一个 CommandButton,写入以下代码: 

 

Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA"  

(ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String,  

ByVal wType As Long) As Long 

Private Sub Command1_Click() 

     MessageBox Me.hwnd, "这里是内容", "标题", 0 

End Sub 

 

  先让我们来分析一下首先看第一个参数Byval hWnd As Long很显然这是一个长整形变量所以我们这里需要传递的是数字你可能会发现我们传递的并不是数字啊而是 Me.hwnd??很奇怪是吗如果你真的有此疑问说明你是真心想要学习好API现在就让我们来看看Me.hwnd到底是什么东西以下摘自VB帮助文档 

  hWnd 属性:返回窗体或控件的句柄。 

  句 柄:是由操作环境定义的一个唯一的整数值,它被程序用来标识或者切换到对象,如窗体或控件等。 

 

  现在估计你差不多就已经明白了,我们调用的hwnd其实是一个句柄整数值,你可以用 Msgbox Me.hwnd 看一下就知道了。至于Me这是一个关键字,代表当前Form窗体对象。如:Me.Caption="标题"Me.BackColor= vbRed等。 

 

  接上面的,首先我们传入了Me.hwnd,表示是当前窗口调用MessageBox,这里告诉大家一个技巧,也就是以后凡是看到Byval hwnd As Long,一般都是需要传入句柄的,至于传入哪个对象句柄,那就要看你是怎么实现的了。 

  ByVal lpText As String,这个是字符串变量,标识着叫我们需要传入字符串进去,可以看里面的变量字符lpText,属于文本的意思,也就是说是用来显示MsgBox中的消息文本的。 

  ByVal lpCaption As String,也是字符串变量,还是传入字符串进去。在看里面的变量字符lpCaption,其实就是显示MsgBox标题的。 

  ByVal wType As Long,这是一个整形变量,需要传递整形数字,还是看里面的变量字符wType,标识着显示MsgBox类型,这里可以像VBMsgBox一样使用,如这里可以传入:vbYesNo,vbOkCancel等,如果忽略那就传入0即可。 

 

  好了,按F5启动程序,点击Command1,接着就会弹出一个消息框,这里我们制作以及分析MsgBox已经完成了。希望你能在这段学习到一些知识。 

 

  2,来点实用的吧 

 

  就拿隐藏Windows任务管理器来说吧,这里只能隐藏任务管理器中的窗口,不能隐藏进程。(问:有没有隐藏进程的?答:你想干什么?),当程序运行后你无法从任务管理器的窗口中关闭程序,只能从进程中进行终止。好了,还是老规矩,打开API浏览器,输入GetWindowShowWindow两个 API,声明范围还是私有的,复制粘贴到Form代码窗口中,嗯,好了?别急,还是API浏览器,选择Combox中的常数,输入GW_OWNER SW_HIDE这两个API常数,然后粘贴到代码窗口中,问我这两个是干什么的?那就接着往下看吧。写入以下代码: 

 

Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long,  

ByVal wCmd As Long) As Long 

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long,  

ByVal nCmdShow As Long) As Long 

Private Const GW_OWNER = 4 

Private Const SW_HIDE = 0 

Private Sub Form_Load() 

     Dim lphWnd As Long 

     lphWnd = GetWindow(Me.hwnd, GW_OWNER) 

     ShowWindow lphWnd, SW_HIDE 

End Sub 

 

  又到了分析的时候了,这对刚入门的新手可谓是最激动的时候了。好了,还是老子,看看两个API的表面意思和传递值变量。 

 

  先看GetWindow,表面意思:获取窗口。传递值变量:hWnd整形句柄,wCmd整形命令值。 

  再看ShowWindow,表面意思:显示窗口。传递值变量:hWnd整形句柄,nCmdShow整形命令值。 

 

  然后是使用代码,先看lphWnd = GetWindow(Me.hwnd, GW_OWNER)这句,这句意思是获取当前窗口的所有者窗口句柄,可以看到GetWindowFunction过程函数,执行以后会返回相应的窗口句柄值,这个值为Long整形(同句柄)。接着调用ShowWindow lphWnd, SW_HIDE,这句意思是显示lphwnd这个句柄的窗口,关键一句是最后的SW_HIDE,这是API函数的常量。通过设置常量能让系统知道API到底应该怎么执行显示窗口,是显示?还是隐藏?Hide当然是隐藏的意思。好了,编译成Exe,运行后打开任务管理器,查看程序窗口,还有吗? 

 

  我又要说一下了,有些人可能不懂为什么要用GW_OWNER这些常量,这些到底有什么用?还有就是我怎么知道哪些API对应哪些的常量?其实这些常量你只要稍微注意一下就知道它们是怎么回事了,如在GetWindow中我使用GW_OWNER,在ShowWindow中我使用SW_HIDE这些常量都有一个共同的特点,就是他们都是以API的单词第一个字母为标准。如GetWindow相对应的常量就是Get(G)Window(W)=GW ShowWindow相对应的常就是Show(S)Window(W)=SW,这些常量可以自己在VBAPI浏览器中找找看。

2007年9月26日星期三

收取hotmail信件的最新变通方案

在Freepops不好用的情况下,可以变通的采用windows live mail收取hotmail的信件。
windows live mail的下载的地址是:
 
在本地文件夹中的存储地址是:
c:\Documents and Settings\S*****\Local Settings\Application Data\Microsoft\Windows Live Mail\
里面的信件是以.eml的形式存在的。因此,可以方便的导入到outlook espress 中。
 

2007年8月28日星期二

【网络编程】IIS+ASP的安全问题

目前,IIS+ASP+Access是中小型Internet网站的首选方案。但是,该解决方案在为
我们带来便捷的同时,也带来了严峻的安全问题。

一、安全隐患分析

IIS+ASP+Access解决方案的主要安全隐患来自Access数据库的安全性,其次在于
ASP网页设计过程中的安全意识和措施。

1.数据库可能被下载

在IIS+ASP+Access网站中,如果有人通过各种方法获得或者猜到数据库的存储路径
和文件名,则该数据库就可以被下载到本地。例如:对于网上书店数据库,一般命
名为book.mdb、store.mdb等,存储路径一般为"URL/database"或放在根目录
"URL/"下,这样,任何人敲入地址:"URL/database/store.mdb", 数据库就可以
被下载了。

2.数据库可能被解密

由于Access数据库的加密机制比较简单,即使设置了密码,解密也很容易。该数据
库系统通过将用户输入的密码与某一固定密钥(例如: Access 97为86 FB EC 37
5D 44 9C FA C6 5E 28 E6 13)进行"异或"来形成一个加密串,并将其存储在
*.mdb文件从地址"&H42"开始的区域内。我们可以轻松地编制解密程序,一个几十
行的小程序就可以轻松地获得任何Access数据库的密码。因此,只要数据库被下
载,其信息就没有任何安全性可言了。

3.ASP页面的安全性

(1)源代码安全性隐患。由于ASP程序采用非编译性语言,大大降低了程序源代码
的安全性。如果黑客侵入站点,就可以获得ASP源代码;同时对于租用服务器的用
户,因个别服务器出租商的职业道德问题,也会造成ASP应用程序源代码泄露。

(2)程序设计中容易被忽视的安全性问题。ASP代码使用表单实现交互,而相应的
内容会反映在浏览器的地址栏中,如果不采用适当的安全措施,只要记下这些内
容,就可以绕过验证直接进入某一页面。例如在浏览器中敲入"...page.asp?x=
1",即可不经过表单页面直接进入满足"x=1"条件的页面。因此,在验证或注册页
面中,必须采取特殊措施来避免此类问题的产生。

二、提高IIS+ASP网站安全性的方法

1.防止数据库被下载

由于Access数据库加密机制过于简单,有效地防止数据库被下载,就成了提高ASP+
Access解决方案安全性的重中之重。以下两种方法简单、有效。

(1)非常规命名法。为Access数据库文件起一个复杂的非常规名字,并把它放在
几个目录下。例如,对于网上书店的数据库,我们不把它命名为 "book.mdb"或
"Store.mdb",而是起个非常规的名字,例如:faq9jl.mdb,再把它放在如.
/akkt/kj61/acd/av5 的几层目录下,这样黑客想通过猜的方式得到Access数据库
文件名就很难了。

(2)使用ODBC数据源。在ASP程序设计中,如果有条件,应尽量使用ODBC数据源,
不要把数据库名写在程序中,否则,数据库名将随ASP源代码的失密而一同失密,
例如:

DBPath = Server.MapPath("./akkt/kj61/acd/av5/faq9jl.mdb ")

conn.open "driver={Microsoft Access Driver (*.mdb)};dbq="& DBPath

可见,即使数据库名字起得再怪异,隐藏的目录再深,ASP源代码失密后,也很容
易被下载下来。如果使用ODBC数据源,就不会存在这样的问题了:

conn.open "ODBC-DSN名"

2.对ASP页面进行加密

为有效地防止ASP源代码泄露,可以对ASP页面进行加密。我们曾采用两种方法对
ASP页面进行加密。一是使用组件技术将编程逻辑封装入DLL之中;二是使用微软的
Script Encoder对ASP页面进行加密。使用组件技术存在的主要问题是每段代码均
需组件化,操作比较繁琐,工作量较大,而使用Encoder对ASP页面进行加密,操作
简单、收效良好。Script Encoder的运行程序是SCRENC.EXE,使用方法是:

SCRENC [/s] [/f] [/xl] [/l defLanguage ] [/e defExtension] inputfile
outputfile

其中:/s 是屏蔽屏幕输出;/f 指定输出文件是否覆盖同名输入文件;/xl 指是否
在.asp文件的顶部添加@Language指令;/l defLanguag指定缺省的脚本语言; /e
defExtension 指定待加密文件的扩展名。

3.注册验证

为防止未经注册的用户绕过注册界面直接进入应用系统,我们采用Session对象进
行注册验证。例如,我们制作了下面的注册页面。
设计要求注册成功后系统启动hrmis.asp?page=1页面。假设,不采用Session对象
进行注册验证,则用户在浏览器中敲入 "URL/hrmis.asp?page=1"即可绕过注册界
面,直接进入系统。
在此,利用Session对象进行注册验证:

〈%

'读取使用者所输入的账号和密码

UserID = Request("UserID")

Password = Request("Password")

'检查UserID 及Password 是否正确

If UserID 〈〉"hrmis" Or Password 〈〉"password" Then

Response.Write "账号错误!"

Response.End

End If

'将Session 对象设置为通过验证状态

Session("Passed") = True

%〉

进入应用程序后,首先进行验证:

〈%

'如果未通过验证,返回Login状态

If Not Session("Passed") Then

Response.Redirect "Login.asp"

End If

%〉

通过对IIS+ASP+Access网上应用系统安全性的研究,我们对现有系统进行了改造,
收到了较好的效果。

【网络技巧】常用网络工具命令汇总(共三篇)

Windows内置网络测试工具

如果你是一个网络管理员,相信你肯定会和笔者一样经常受到网络故障的困扰。网
络和单机最大的不同就是其牵一发而动全身的特性,一台单机上的问题很可能映射
到网络中的某个环节,甚至破坏全部的网络运转。那么当网络特别是家庭、企业级
用户的局域网络发生故障时,我们该如何面对,又应该如何处理呢?呵呵,硬有硬
办法,软有软道理,解决方案可能涉及到很多方面,甚至国外已经有了相关的硬件
测试工具,本文仅就目前在国内局域网中广泛应用的 Windows 98/NT/2000操作系
统中内置的网络测试工具和网友诸君探讨一下。

一、Ping

相信玩过网络的人都会对"Ping"这个命令有所了解或耳闻。Ping命令是
Windows9X/NT中集成的一个专用于TCP/IP协议的测试工具, ping命令是用于查看
网络上的主机是否在工作,它是通过向该主机发送ICMP ECHO_REQUEST包进行测试
而达到目的的。一般凡是应用TCP/IP协议的局域或广域网络,不管你是内部只有几
台电脑的家庭、办公室局域网,还是校园网、企业网甚至Internet国际互联网络,
当客户端与客户端之间无法正常进行访问或者网络工作出现各种不稳定的情况时,
建议大家一定要先试试用 Ping这个命令来测试一下网络的通信是否正常,多数时
候是可以一次奏效的。

1.Ping命令的语法格式

ping命令看似小小的一个工具,但它带有许多参数,要完全掌握它的使用方法
还真不容易,要达到熟练使用则更是难下加难,但不管怎样我们还得来看看它的真
面目,首先我们还是从最基本的命令格式入手吧!
ping命令的完整格式如下:

ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count]
[-s count] [[-j -Host list] | [-k Host-list]] [-w timeout] destination-list

ping目的地址[参数1][参数2]……  


从这个命令式中可以看出它的复杂程度,ping命令本身后面都是它的执行参数,现
对其参数作一下详细讲解吧!

-t—有这个参数时,当你ping一个主机时系统就不停的运行ping这个命令,直到你
按下Control-C。
-a—解析主机的NETBIOS主机名,如果你想知道你所ping的要机计算机名则要加上这
个参数了,一般是在运用ping命令后的第一行就显示出来。
-n count—定义用来测试所发出的测试包的个数,缺省值为4。通过这个命令可以自
己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送20个数据包的返
回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过执行带有这个
参数的命令获知。
-l length—定义所发送缓冲区的数据包的大小,在默认的情况下windows的ping发
送的数据包大小为32byt,也可以自己定义,但有一个限制,就是最大只能发送
65500byt,超过这个数时,对方就很有可能因接收的数据包太大而死机,所以微软
公司为了解决这一安全漏洞于是限制了ping的数据包大小。
-f—在数据包中发送"不要分段"标志,一般你所发送的数据包都会通过路由分段再
发送给对方,加上此参数以后路由就不会再分段处理。
-i ttl—指定TTL值在对方的系统里停留的时间,此参数同样是帮助你检查网络运转
情况的。
-v tos—将"服务类型"字段设置为"tos"指定的值。
-r count—在"记录路由"字段中记录传出和返回数据包的路由。一般情况下你发送
的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参
数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟
踪到9个路由。
-s count—指定"count"指定的跃点数的时间戳,此参数和-r差不多,只是这个参数
不记录数据包返回所经过的路由,最多也只记录4个。
-j host-list —利用"computer-list" 指定的计算机列表路由数据包。连续计算机
可以被中间网关分隔IP 允许的最大数量为 9。
-k host-list —利用"computer-list" 指定的计算机列表路由数据包。连续计算机
不能被中间网关分隔IP 允许的最大数量为 9。
-w timeout—指定超时间隔,单位为毫秒。
destination-list —是指要测试的主机名或IP地址

2.Ping命令的应用

 (1)、测试网络的通畅

 我们知道可以用ping命令来测试一下网络是否通畅,这在局域网的维护中经常用
到,方法很简单,只需要在DOS或Windows的开始菜单下的"运行" 子项中用ping命
令加上所要测试的目标计算机的IP地址或主机名即可(目标计算机要与你所运行
ping命令的计算机在同一网络或通过电话线或其它专线方式已连接成一个网络),
其它参数可全不加。如要测试台IP地址为196.168.1.21的工作站与服务器是否已连
网成功,就可以在服务器上运行: ping -a 196.`68.123.56 即可,如果工作站上
TCP/IP协议工作正常,即会以DOS屏幕方式显示如下所示的信息:
  Pinging cindy[196.168.1.21] with 32 bytes of data:
  Reply from 196.168.1.21: bytes=32 time<10ms TTL=254
  Reply from 196.168.1.21: bytes=32 time<10ms TTL=254
  Reply from 196.168.1.21: bytes=32 time<10ms TTL=254
  Reply from 196.168.1.21: bytes=32 time<10ms TTL=254
  Ping statistics for 196.168.1.21:
  Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate
round trip times in milli-seconds:
  Minimum = 0ms, Maximum = 0ms, Average = 0ms
  从上面我们就可以看出目标计算机与服务器连接成功,TCP/IP协议工作正常,
因为加了"-a"这个参数所以还可以知道IP为 196.168.1.21的计算机的NetBIOS名为
cindy。
  如果网络未连成功则显示如下错误信息:
  Pinging[196.168.1.21 ] with 32 bytes of data
  Request timed out.
  Request timed out.
  Request timed out.
  Request timed out.
  Ping statistice for 196.168.1.21:
  Packets:Sent=4,Received =0,Lost=4(100% loss),
  Approximate round trip times in milli-seconds
  Minimum=0ms,Maximum=0ms,Average=0ms
  为什么不管网络是否连通在提示信息中都会有重复四次一样的信息呢(如上的
"Reply from 196.168.1.21: bytes=32 time<10ms TTL=254 "和"Request timed
out"),那是因为一般系统默认每次用ping测试时是发送四个数据包,这些提示就
是告诉你所发送的四个数据包的发送情况。
  出现以上错误提示的情况时,就要仔细分析一下网络故障出现的原因和可能有
问题的网上结点了,一般首先不要急着检查物理线路,先从以下几个方面来着手检
查:一是看一下被测试计算机是否已安装了TCP/IP协议;二是检查一下被测试计算
机的网卡安装是否正确且是否已经连通;三是看一下被测试计算机的 TCP/IP协议
是否与网卡有效的绑定(具体方法是通过选择"开始→设置→控制面板→网络"来查
看);四是检查一下Windows NT服务器的网络服务功能是否已启动(可通过选择
"开始→设置→控制面板→服务",在出现的对话框中找到"Server"一项,看"状态"下
所显示的是否为"已启动")。如果是TCP/IP协议的问题,建议大家重新安装并设置
一下TCP/IP协议。如果通过以上四个步骤的检查还没有发现问题的症结,这时再查
物理连接了,我们可以借助查看目标计算机所接HUB或交换机端口的批示灯状态来
判断目标计算机现网络的连通情况。

  (2)、获取计算机的IP地址

  利用ping这个工具我们可以获取对方计算机的IP地址,特别是在局域网中,我
们经常是利用NT或WIN2K的DHCP动态IP地址服务自动为各工作站分配动态IP地址,
这时当然我们要知道所要测试的计算机的NETBIOS名,也即我们通常在"网络邻居"
中看到的"计算机名"。使用ping命令时我们只要用ping命令加上目标计算机名即
可,如果网络连接正常,则会显示所ping的这台机的动态IP地址。其实我们完全可
以在互联网使用,以获取对方的动态IP地址,这一点对于黑客来说是比较有用的,
当然首先的一点就是你先要知道对方的计算机名。

  (3)、上述应用技巧其实重点是Ping 命令在局域网中的应用,其实Ping命令不
仅在局域网中广泛使用,在Internet互联网中也经常使用它来探测网络的远程连接
情况。平时,当我们遇到以下两种情况时,需要利用Ping工具对网络的连通性进行
测试。比如当某一网站的网页无法访问时,可使用Ping命令进行检测。如当您无法
访问赛迪网的主页时,可使用"Ping www.ccidnet.com"的命令行进行测试,如果返
回类似于"Pinging ns. ccidnet.com with 32 bytes of data:……"的信息,说明对
方的主机已打开,相反则表明在网络连接的某个环节可能出现了故障,或对方的主
机未打开。另外,我们在发送E- mail之前也可以先测试一下网络的连通性。许多
因特网用户在发送E-mail后经常收到诸如"Returned mail:User unknown"的信息,
这说明您的邮件未发送到目的地。为了避免此类事件再次发生,所以建议大家在发
送E-mail 之前先养成Ping对方邮件服务器地址的习惯。例如,当您给163网站邮件
用户发邮件时,可先键入"ping 163.com"(其实163.com就是网易的其中一台服务
器名)进行测试,如果返回类似于"Bad IP address 163.com"或"Request times
out"或"Unknow host 163.com"等的信息,说明对方邮件服务器的主机未打开或网
络未连通。这时即使将邮件发出去,对方也无法收到。

  按照上述方法,我们还可以用Ping命令来检查任意一台客户湍计算机上TCP/IP
的工作情况。例如我们要检查网络任一客户端"机房01"上的 TCP/IP协议的配置和
工作情况,可直接在该台机器上Ping本机的IP地址,若返回成功的信息,说明IP地
址配置无误,若失败则应检查IP地址的配置。可通过以下步骤进行:首先先检查一
下整个网络,重点看一下该IP地址是否正在被其他用户使用,然后再看一下该工作
站是否已正确连入网络(很多情况下用户没有登陆网络也会出现此种情况,这可是
低级错误啊)。最后检查网卡的I/0地址 IRQ值和DMA值,这些值是否与其他设备
发生了冲突。其中最后一项的检查非常重要,也常被许多用户所忽视,即使是Ping
成功后也要进行此项的检查。因为当Ping本机的IP地址成功后,仅表明本机的IP地
址配置没有问题,但并不能说明网卡的配置完全正确。这时虽然在本机的"网上邻
居"中能够看到本机的计算机名,可就是无法与其他的用户连通,不知问题出在何
处,其实问题往往就出在网卡上。  

  Ping 命令虽然简单,但实际运用起来却是作用非凡,灵活使用相信一定会给
你的网管生涯带来意外的惊喜。


二、Ipconfig/Winipcfg

与Ping 命有所区别,利用Ipconfig和Winipcfg工具可以查看和修改网络中
的TCP/IP协议的有关配置,如IP地址、网关、子网掩码等。这两个工具在Windows
95/98中都能使用,功能基本相同,只是Ipconfig 是以 DOS的字符形式显示,而
Winipcfg则用图形界面显示,也就是其实两个工具是一个工具,只不过一个是DOS
下的版本,另一个为WINDWOS下的版本,但要注意,在Windows NT中只能运行于DOS
方式下的Ipconfig工具。


1.Ipconfig命令的语法格式

  Ipconfig[/all][/batch file][/renew all][/release all][/renew
n][/release n]
  
all--显示与TCP/IP协议相关的所有细节信息,其中包括测试的主机名、IP地址、
子网掩码、节点类型、是否启用IP路由、网卡的物理地址、默认网关等。
Batch file—将测试的结果存入指定的"file"文件名中,以便于逐项查看,如果省
略file文件名,则系统会把这测试的结果保存在系统的 "winipcfg.out"文件中。
renew all—更新全部适配器的通信配置情况,所有测试重新开始。
release all—释放全部适配器的通信配置情况,
renew n—更新第n号适配器的通信配置情况,所有测试重新开始。
release n—释放第n号适配器的通信配置情况,

2.Winipcfg命令

  Winipcfg工具的功能与Ipconfig基本相同,只是Winipcfg是以图形界面的方式
显示。在操作上更加方便,同时能够以WINDOWS 的 32位图形界面方式显示。当用
户需要查看任何一台机器上TCP/IP协议的配置情况时,只需在Windows 95/98上选
择"开始→运行",在出现的对话框中输入命令"winipcfg",将出现测试结果。单击
"详细信息"按钮,在随后出现的对话框中可以查看和改变TCP/IP的有关配置参灵
敏,当一台机器上安装有多个网卡时,可以查找到每个网卡的物理地址和有关协议
的绑定情况,这在某些时候对我们是特别有用的。如果要获取更多的信息,可单击
图中的"详细信息"按钮,在出现的对话框中可以相看到比较全面的信息。

3、ipconfig/winipcfg的应用

上面我讲了一下这两姊妹TCP/IP测试工具的一些用法,下面我就来谈她们的一些用途。
  (1)、查找目标主机的IP地址及其它有关TCP/IP协议的信息,方法如下:按
「开始」菜单执行「运行」菜单项,输入 winipcfg,就会出现一个 IP 组态窗
口,这里会显示有关于你目前网络 IP 的一些详细设置数据。或者,你也可以在
MS-DOS 模式下,输入 ipconfig,也是一样可以显示详细的 IP 信息,只不过此画
面是在 DOS 下而已。

  (2)、 ipconfig/winipcfg应该说是一款网络侦察的利器,尤其当用户的网络
中设置的是DHCP(动态IP地址配置协议)时,利用 Ipconfig/winipcfg可以让用户
很方便地了解到所用IPconfig/winipcfg机的IP地址的实际配置情况。因为它有一
个 "/all"这个参数,所以它可侦查到本机上所有网络适配的IP地址分配情况,比
ping命令更为详细。如果我们在机房winda客户端上运行 "Ipconfig/all/batch
winda.txt"后,打开winda.txt文件,将显示如下所示的内容,非常详细地显示了
所有与TCP/IP协议有关的配置情况。当然与ping相比也有它的不足之处就是它只能
在本机上测试,不能运用网络功能来测试。
 

三、Netstat的技法  

  与上述几个网络检测软件类似,Netstat命令也是可以运行于Windows
95/98/NT的DOS提示符下的工具,利用该工具可以显示有关统计信息和当前TCP/IP
网络连接的情况,用户或网络管理人员可以得到非常详尽的统计结果。当网络中没
有安装特殊的网管软件,但要对网络的整个使用状况作个详细地了解时,就是
Netstat大显身手的时候了。  
  它可以用来获得你的系统网络连接的信息(使用的端口和在使用的协议等),
收到和发出的数据,被连接的远程系统的端口等。

  1、Netstat命令的语法格式

  Nbtstat 格式:netstat [-a] [-e] [-n] [-s] [-p protocol] [-r] [interval]

  参数解释如下:
-a—用来显示在本地机上的外部连接,它也显示我们远程所连接的系统,本地和远
程系统连接时使用和开放的端口,以及本地和远程系统连接的状态。这个参数通常
用于获得你的本地系统开放的端口,用它您可以自己检查你的系统上有没有被安装
木马,如果您在你的机器上运行Netstat,如发現诸如:Port 12345(TCP)
Netbus、Port 31337(UDP) Back Orifice之类的信息,则你的机器上就很有可能感
染了木马。
-n—这个参数基本上是-a参数的数字形式,它是用数字的形式显示以上信息,这个
参数通常用于检查自己的IP时使用,也有些人使用他是因为更喜欢用数字的形式。
-e—显示静态太网统计,该参数可以与 -s 选项结合使用。
-p protocol—用来显示特定的协议配置信息,它的格式为:Netstat -p xxx,xxx
可以是UDP、IP、ICMP或TCP,如要显示机器上的TCP协议配置情况则我们可以用:
Netstat -p tcp。
-s—显示机器的缺省情况下每个协议的配置统计,缺省情况下包括TCP、IP、UDP、
ICMP等协议。 这些协议主要有TCP(Transfer Control Protocol,传输控制协
议)、UDP(User Datagram Protocol ,用户数据报协议)、ICMP(Internet
Control Messages Protocol,网间控制报文协议)和IP(Internet Protocol,网
际协议),其中前三种协议一般平时很少用到,但在进行网络性能评析时却非常有用。
-r—用来显示路由分配表。
  interval—每隔"interval"秒重复显示所选协议的配置情况,直到按"CTRL+C"
中断。

2、netstat的应用

  从以上各参数的功能我们可以看出netstat工具至少有以下向方面的应用:
  (1)、显示本地或与之相连的远程机器的连接状态,包括TCP、IP、UDP、ICMP
协议的使用情况,了解本地机开放的端口情况;
  (2)、检查网络接口是否已正确安装,如果在用netstat这个命令后仍不能显示
某些网络接口的信息,则说明这个网络接口没有正确连接,需要重新查找原因。
  (3)、通过加入"-r"参数查询与本机相连的路由器地址分配情况;
  (4)、还可以检查一些常见的木马等黑客程序,因为任何黑客程序都需要通过
打开一个端口来达到与其服务器进行通信的目的,不过这首先要使你的这台机连入
互联网才行,不然这些端口是不可能打开的,而且这些黑客程序也不会起到入侵的
本来目的。  
 
四、nbtstat

  NBTSTAT命令:用于查看当前基于NETBIOS的TCP/IP连接状态,通过该工具你可
以获得远程或本地机器的组名和机器名。虽然用户使用 ipconfig/winipcfg工具可
以准确地得到主机的网卡地址,但对于一个已建成的比较大型的局域网,要去每台
机器上进行这样的操作就显得过于费事了。网管人员通过在自己上网的机器上使用
DOS命令nbtstat,可以获取另一台上网主机的网卡地址。
如果用户想要统计当前局域网中的详细信息,可通过键入 "netstat-e-s"来查看。

我们还是先来看看它的语法格式吧:

  NBTSTAT [ [-a RemoteName] [-A IP address] [-c] [-n] [-r] [-R] [-RR]
[-s] [-S] [interval] ]

  参数说明:
  -a Remotename—说明使用远程计算机的名称列出其名称表,此参数可以通过远
程计算机的NetBios名来查看他的当前状态。
  -A IP address—说明使用远程计算机的 IP 地址并列出名称表,这个和-a不同
的是就是这个只能使用IP,其实-a就包括了-A的功能了。
  -c—列出远程计算机的NetBIOS 名称的缓存和每个名称的 IP 地址这个参数就
是用来列出在你的NetBIOS里缓存的你连接过的计算机的IP。
  -n—列出本地机的 NetBIOS 名称,此参数与上面所介绍的一个工具软件
"netstat"中加" -a"参数功能类似,只是这个是检查本地的,如果把netstat -a后
面的IP换为自己的就和nbtstat -n的效果是一样的了。
  -r—列出 Windows 网络名称解析的名称解析统计。在配置使用 WINS 的
Windows 2000 计算机上,此选项返回要通过广播或 WINS 来解析和注册的名称数。
  -R—清除 NetBIOS 名称缓存中的所有名称后,重新装入 Lmhosts 文件,这个
参数就是清除nbtstat -c所能看见的缓存里的IP。
  -S—在客户端和服务器会话表中只显示远程计算机的IP地址。
  -s—显示客户端和服务器会话,并将远程计算机 IP 地址转换成NETBIOS名称。
此参数和-S差不多,只是这个会把对方的NetBIOS名给解析出来。
  -RR—释放在 WINS 服务器上注册的 NetBIOS 名称,然后刷新它们的注册。
  interval—每隔interval 秒重新显示所选的统计,直到按"CTRL+C"键停止重新
显示统计。如果省略该参数,nbtstat 将打印一次当前的配置信息。此参数和
netstat的一样,nbtstat中的"interval"参数是配合-s和-S一起使用的。

  好了,关于nbtstat的应用就不多讲了,相信看了它的一些参数功能也就明白
了它的功能了,只是要特别注意这个工具中的一些参数是区分大、小写的,使用时
要特别留心!另外在系统中还人置有许多这方面的工具,如ARP命令是用于显示并
修改Internet到以太网的地址转换表;nslookup命令的功能是查询一台机器的IP地
址和其对应的域名,它通常需要一台域名服务器来提供域名服务,如果用户已经设
置好域名服务器,就可以用这个命令查看不同主机的 IP地址对应的域名……在此就
不多讲了,另外还要说明的一点就是不同的系统中的相应命令参数设置可能有不同
之处,但大体功能是一致的,希望大家在应用时稍加注意,本文所列的这些工具软
件参数用法全是针对Win9xWinMe,在NT和UNIX、LINUX系统中有一些不同之处。
  
/////////////////////////////////////////////////////////////////////////////////////////////////////

常用网络工具命令

windows操作系统中包含了5个TCP/IP实用程序:ping、ipconfig、tracert、
netstat、arp。这些软件虽然不大,但确实可以方便的帮助我们了解网络的状况。

1. Ping命令
Ping 可能是这5个TCP/IP软件中大家最熟悉的一个了,这个软件从Windows 95开始
集成,目前所有微软的操作系统都附带这个软件。Ping的主要作用是检测一帧数据
从当前主机传送到目的主机所需要的时间。它通过发送一些小的数据包,并接收应
答信息来确定两台计算机之间的网络是否连通。当网络出现问题时,可以用这个软
件来预测故障和确定故障源。如果执行ping不成功,则可以预测故障出现在以下几
个方面:网线是否连通,网络适配器配置是否正确,IP地址是否可用等;如果执行
ping成功而网络仍无法使用,那么问题很可能出在网络系统的软件配置方面,不
过,需要注意的是:ping成功只能保证当前主机与目的主机间存在一条连通的物理
路径,并不代表其它东西。

Ping命令的格式如下:(在命令行状态下输入ping即可显示其格式及参数的英文
说明)
ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count]
[-s count] [[-j host-list] | [-k host-list]] [-w timeout] destination-list
其中的参数说明如下:
-t 使当前主机不断地向目的主机发送数据,直到使用Ctrl-C中断;
-a 以IP地址格式显示网络地址;
-n count 指定要做多少次ping,其中count为正整数值,默认为4;
-l size 发送的数据包的大小;
-f 设置回应不会由中间网关分组;
-i TTL 指定ping分组时限域,TTL是指在停止到达的地址前应经过多少个网关;
-v TOS 服务的类型;
-r count 指出要记录路由的轮数(去和回);
-s count 指定当使用-r参数时,用于每一轮路由的时间;
-j host-list 指定希望分组的路由;
-k host-list 与-j参数基本相同,只是不能使用额外的主机;
-w timeout 指定超时时间间隔(单位为毫秒),缺省为1000;
一般我们使用得较多的参数为-t、-n、-w。

例:如果ping某一网络地址,如:www.sina.com.cn,出现:"Reply from
61.132.187.134: bytes=32 time=541ms TTL=239"则表示本地与该网络地址之间的
线路是畅通的;如果出现"Request timed out",则表示此时发送的数据包不能到
达目的地,此时可能有两种情况,一种是网络不通,还有一种是网络连通状况不
佳。此时还可以使用带参数的Ping来确定是哪一种情况。 例:ping

www.sina.com.cn -t -w 3000 不断地向目的主机发送数据,并且响应时间增大到
3000ms,此时如果都是显示"Reply timed out",则表示网络之间确实不通,如果
不是全部显示"Reply times out"则表示此网站还是通的,只是响应时间长或通讯
状况不佳。这样我们检查网络状态就很容易了。当然Ping的作用还不止这些,比如
我们可以用Ping 来判断目前机器的IP地址配置是否正常(这主要是在局域网的问
题),这样我们可以直接在该台机器上Ping本机的IP地址,若返回成功的信息,说
明IP地址配置无误,若失败则应检查IP地址的配置。另外,我们在发送E-mail之前
也可以先测试一下网络的连通性。许多因特网用户在发送E-mail后经常收到诸如
"Returned mail:User unknown"的信息,这说明您的邮件未发送到目的地。为了避
免此类事件再次发生,所以建议大家在发送E-mail 之前先养成Ping对方邮件服务
器地址的习惯。例如,当您给aa@163.net发邮件时,可先键入"ping 163.net"进行
测试,如果返回类似于"Bad IP address cniti.com"或"Request times out"的信
息,说明对方的主机未打开或网络未连通。这时即使将邮件发出去,对方也无法收到。

2、Ipconfig命令
利用Ipconfig工具可以查看和修改网络中的TCP/IP协议的有关配置,如IP地址、网
关、子网掩码等。如:

ipconfig的命令格式如下:
ipconfig [/? | /all | /release [adapter] | /renew [adapter]]
其中的参数说明如下:
/? 显示ipconfig的格式和参数的英文说明;
/all 显示所有的配置信息;
/release 为指定的适配器(或全部适配器)释放IP地址(只适用于DHCP);
/renew 为指定的适配器(或全部适配器)更新IP地址(只适用于DHCP)。
/batch[文本文件名]:将测试的结果存入指定的文本文件名中,以便于逐项查看。
使用不带参数的ipconfig命令可以得到以下信息:IP地址、子网掩码、默认网关。
而使用ipconfig /all,则可以得到更多的信息:主机名、DNS服务器、节点类型、
网络适配器的物理地址、主机的IP地址、子网掩码以及默认网关等。
Ipconfig 应该说是一款网络侦察的利器,尤其当用户的网络中设置的是DHCP(动
态IP地址配置协议)时,利用Ipconfig可以让用户很方便地了解到IP地址的实际配
置情况。如果我们在机房01客户端上运行"Ipconfig/all/batch net.txt"后,打开
net.txt文件,将显示如下所示的内容,非常详细地显示了TCP/IP协议的有关配置
情况 。

以上就是运行ipconfig /all后显示目前本机的网络配置,网卡和详细网关、DNS服
务器都一览无余。
3. Tracert命令
Tracert命令的功能是判定数据包到达目的主机所经过的路径、显示数据包经过的
中继节点清单和到达时间。
tracert命令的格式如下:
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
其中的参数说明如下:
-d 不解析主机名;
-h maximum_hops 指定搜索到目的地址的最大轮数;
-j host-list 沿着主机列表释放源路由; -w timeout 指定超时时间间隔(单位
毫秒)。
通过tracert我们很容易知道目前我们到达这台机器需要通过多少台服务器,这个
功能在局域网中特别有用。

比如,我们依旧以去www.sina.com.cn网站为例,我的这台机器需要通过17个服务
器才能达到新浪网站。

4. Netstat命令
这个程序有助于我们了解网络的整体使用情况。它可以显示当前正在活动的网络连
接的详细信息,如采用的协议类型、当前主机与远端相连主机(一个或多个)的
IP 地址以及它们之间的连接状态等。用户或网络管理人员可以得到非常详尽的网
络统计结果。当网络中没有安装特殊的网管软件,但要对网络的整个使用状况作个
详细地了解时,就是Netstat大显身手的时候了。

使用netstat /?可以显示它的命令格式和参数说明。
netstat的命令格式如下:
netstat [-a] [-e] [-n] [-s] [-p proto] [-r] [interval] 其中的参数说明如下:
-a 显示所有主机的端口号;
-e 显示以太网统计信息;
-n 以数字表格形式显示地址和端口;
-p proto 显示特定的协议的具体使用信息;
-r 显示本机路由表的内容;
-s 显示每个协议的使用状态,这些协议主要有TCP(Transfer Control
Protocol,传输控制协议)、UDP (User Datagram Protocol ,用户数据报协
议)、ICMP (Internet Control Messages Protocol,网间控制报文协议)和IP
(Internet Protocol,网际协议),其中前三种协议一般平时很少用到,但在进
行网络性能评析时却非常有用。
interval 重新显示所选的状态,每次显示之间的间隔数(单位秒),按Ctrl+C中
止重新显示。
另外,在Windows 95/98/NT/2000下还集成了一个名为Nbtstat的工具,此工具的功
能与Netstat基本相同,如需要用户可通过键入"nbtstat -?"来查看它的主要参数
和使用方法。使用时,如果用户想要统计当前局域网中的详细信息,可通过键入
"netstat-e-s"来查看。

5、arp命令
arp命令主要用来显示及修改特定IP地址的网卡地址。
使用arp /?可以显示它的命令格式和参数说明。
arp的命令格式如下:
arp -s inet_addr eth_addr [if_addr]
arp -d inet_addr [if_addr]
arp -a [inet_addr] [-N if_addr]
其中的参数说明如下:
inet_addr IP地址;
eth_addr 网卡地址;
-a 显示某个IP地址的网卡地址(不加IP地址,显示所有已激活的IP地址的网卡地
址)(使用该参数前应该先ping通某一个IP地址);
-d 删除指定IP地址的主机;
-s 增加主机和与IP地址相对应的网卡地址。

运行后,系统显示,目前本机IP地址为:192.168.0.15,而服务器IP地址则为:
192.168.0.1,当然其中也会显示目前我网卡的真实物理地址:00-e0-5e-39-1e-24
要运行以上这些程序,只要在DOS方式或Windows开始菜单的运行栏中以命令行的形
式键入程序名即可。灵活使用这几个程序不仅可以使你大体了解自己主机对网络的
使用情况,还可以进行相应的网络管理或检查工作,例检测网络线路是否畅通,局
域网中是否有人盗用IP地址等。
特别注意:在使用这几个命令中,除winipcfg(ipconfig)和netstat命令后面不接
主机地址(IP地址或主机名)外,其余3个命令(ping,tracert,arp)后面都要接
主机地址。
既然,网络大潮已经真正的到来了,掌握一些简单的网络检测几乎是必须的,希望
大家通过此文可以给我们在网络使用中得到更好的环境。


////////////////////////////////////////////////////////////////////////////////////////////////

未公开的Windows网络工具


作为网络时代的桌面操作系统,Windows 98较之其前几代产品增加的不仅仅是用户
能够直接感受到的对TCP/IP等各种网络协议的支持和内嵌的免费浏览器IE,在
Windows 98操作系统中,还集成了完备齐全、功能强大的网络实用工具,能够对网
络应用的各个层次、不同方面进行监测、分析、维护、管理。
由于不能直接在"开始"菜单中选择,加之大多数工具是传统的命令行界面,因此,
这些工具被大多数普通用户所忽略。而作为操作系统集成的网络工具,其质量和可
靠性与网上的各种免费共享软件相比,当然更加令人放心。用户既能够免除复杂的
安装设置过程,方便快捷地调用,又可以避免网上搜寻、下载花费的时间和精力,
防止病毒感染的可能。
运行这些工具的方法与运行一个程序的方法类似:既可以在DOS提示符后输入相应的
程序名,也可以在"开始"中的"运行"菜单中输入同样的命令。
一、检测分析工具
1. IP探测工具Ping
Ping 的命名起源于潜艇声纳探测目标时发出的脉冲,该脉冲遇到目标后会反射回
来,这也恰当地揭示了Ping的功能。如果在浏览某个网页时迟迟得不到回应,用户
可以通过向该主机发出一个试探性的IP检测包(相当于声纳脉冲),来测试该主机
是否可以到达。同时Ping返回了丰富的资料,用户借此可以了解从本机到达对方主
机的速度和该主机的IP地址等信息。
格式:Ping 目的地址 [参数1] [参数2] [参数3]
其中目的地址是指被探测主机的地址,既可以是域名,也可以是IP地址。
参数:
-t : 继续Ping直到用户终止。
-a: 解析主机地址。
-n数值: 发出的探测包的数目,默认值为4。
-l数值: 发送缓冲区大小。
-f: 设置禁止分割包标志。
-I数值: 包生存时间,该数值决定了IP包在网上传播的距离。
-v: 服务类型。
实例: 为了节约上网费用,作为练习,可以在脱机时输入本机地址localhost作为
探测目标。
Ping localhost 或者Ping 127.0.0.1
得到的统计结果如下:
Pinging any [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
以上为发出和回收包数目、包丢失率、平均路由时间等统计。发出的四个探测包都
成功返回,说明对方主机可以访问,并且得到了对方域名为Localhost的 IP地址:
127.0.0.1。
2. 系统监视器
系统监视器可以对本机的网络、内存、磁盘、处理器等关键资源进行监视,并将统
计结果动态显示出来。
点击附件中系统工具下的系统监视器。
选择"添加项目"菜单添加被监视的项目,对于互联网,应该添加"拨号网络适配
器",然后选择其中的"CRC错误"等关键项目进行监视。网络资源项目非常详细,有
CRC错误、超时错误、超限错误、传送的总字节数、对齐方式错误、缓冲区超限、
接受的总字节数、连接速度、每秒传送的帧、每秒传送的字节、每秒接受的帧、每
秒接受的字节、未完成帧、帧错误等。为了监视互联网连接质量,通常选择"CRC错
误"、"帧错误"等关键项目以判断是用户电话线故障或ISP线路故障。
3. 网络统计工具NetStat
功能: 显示协议统计和当前TCP/IP网络连接,用户可以得到非常详尽的统计。
格式: Netstat [参数1] [参数2] [参数3]
参数:
-a: 显示所有网络连接和监听端口。
-e: 显示以太网统计资料。
-n: 以数字格式显示地址和端口。
-p: 显示指定的TCP或者UDP协议的连接。
-r: 显示路由表。
-s: 显示每一个协议的统计。协议可以是TCP、UDP、IP。
interval: 按照指定间隔(interval)反复显示统计信息。
实例: 作为练习,可以输入命令:Netstat -s,则显示所有协议的统计信息如下:
IP Statistics:
Packets Received = 104
Received Header Errors = 0
Received Address Errors = 0
Datagrams Forwarded = 0
Unknown Protocols Received = 0
Received Packets Discarded = 0
Received Packets Delivered = 104
Output Requests = 104
Routing Discards = 0
Discarded Output Packets = 0
Output Packet No Route = 0
Reassembly Required = 0
Reassembly Successful = 0
Reassembly Failures = 0
Datagrams Successfully Fragmented = 0
Datagrams Failing Fragmentation = 0
Fragments Created = 0
ICMP Statistics:
Received Sent
Messages 104 104
Errors 0 0
Destination Unreachable 0 0
Time Exceeded 0 0
Parameter Problems 0 0
Source Quenchs 0 0
Redirects 0 0
Echos 52 52
Echo Replies 52 52
Timestamps 0 0
Timestamp Replies 0 0
Address Masks 0 0
Address Mask Replies 0 0
4. 跟踪路由工具TraceRT(Trace Route)
功能: 查看从本地主机到目标主机的路由。这是一个了解网络原理和工作过程的好
工具,通过显示从本地主机到目标主机所经过的每一个主机地址及来回时间,你既
可以了解一个数据包是如何在网络上经过迂回路由传送到目标主机,又可以分析阻
塞发生在网络的哪一个环节。
在IP 数据包中有一个字段TTL(Time To Live)决定该数据包能够在网络上传送的
距离,发出数据包时,通常预置了初始值。每当该数据包遇到一个主机(经过一次
路由),该字段值减一,然后向邻近的下一个主机发送,直到其值为零就停止传
送,若在TTL值的范围内到达目的地,则发送成功,否则必须重发。这样可以防止
一个数据包无限制地在网上传递,造成网络阻塞。TraceRT工具通过发送探测包,
来获得所经过的每一个主机的地址和往返时间。
格式:TraceRT [参数1][参数2] 目标主机
参数:
-d: 不解析目标主机地址。
-h: 指定跟踪的最大路由数,即经过的最多主机数。
-j: 指定松散的源路由表。
-w: 以毫秒为单位指定每个应答的超时时间。

2007年8月27日星期一

【网络使用技巧】各种操作系统下清空dns缓存方法/命令

How to Flush DNS in Microsoft Windows

微软windows下如何清空dns

In Microsoft Windows, you can use the command ipconfig /flushdns to flush the DNS resolver cache.

在微软windows下,你可以用命令 ipconfig /flushdns 来清空dns 缓存内容。

You can also use the command ipconfig /displaydns to view the DNS resolver cache.

你也可以用命令 ipconfig /displaydns 来查看dns 缓存内容。

C:\>ipconfig /flushdns

Windows IP Configuration

Successfully flushed the DNS Resolver Cache.

How to Flush DNS in Mac OSX

Mac OSX下如何清空dns缓存

In Mac OSX, you can use the command lookupd -flushcache to flush the DNS resolver cache.

Mac OSX中,你可以用这个命令lookupd -flushcache来清空保留的缓存。

bash-2.05a$ lookupd -flushcache

How to Flush DNS in Linux

Linux 下如何清空dns缓存

In Linux, the nscd daemon manages the DNS cache.

linux中,nscd进程负责管理DNS缓存。

To flush the DNS cache, restart the nscd daemon.

要清空DNS缓存,重启nscd 守护进程就行了。

To restart the nscd daemon, use the command `/etc/rc.d/init.d/nscd restart`.

要重启nscd 进程,使用命令(不带引号)'/etc/rc.d/init.d/nscd restart'