纯PB + API取局域网计算机名、IP、MAC、工作组等信息
pb获得系统基本信息
获得系统基本信息当一个应用program在工作时,会不可避免地和操作系统发生数据交换,虽然在PB中提供了Environment对象来获得系统的一些信息,然而这些信息往往是不够的,例如CPU、本机IP地址等,这些内容只有用Windows API来获得了.1、建立一个工作空间(workspace),取名为:systeminfo.2、建立一个应用(application),取名为:systeminfo.3、创建用户对象u_sysinfo,并添加Microsoft Winsock OCX Control .4、定义u_sysinfo的实例变量.public:string cpuid,cpuproviderstring filesystem,volumenameulong VolumeSerialNumber,MaxComponentLength,FileSystemFlagslong dlength,dmemoryload,dtotalphys,davailphys,dtotalpagefilelong davailpagefile,dtotalvirtual,davailvirtualulongdwoemid,dwpagesize,lpminappaddress,lpmaxappaddress,dwactiveprocessorm askulongdwnumberofprocessors,dwprocessortype,dwallocationgranularity,dwreserv edulongsectorspercluster,bytespersector,numberoffreeclusters,totalnumberofcl ustersulong mbtotal,mbfree5、定义u_sysinfo的局部外部函数PUBLIC FUNCTION ulong GetComputerName(ref string lpBuffer,ref ulong nSize) LIBRARY "kernel32.dll"ALIAS FOR "GetComputerNameA"PUBLIC FUNCTION ulong GetDriveType(string nDrive) LIBRARY "kernel32.dll" ALIAS FOR "GetDriveTypeA"FUNCTION ulong GetDiskFreeSpace(ref string lpRootPathName,refulong lpSectorsPerCluster,ref ulonglpBytesPerSector,ref ulong lpNumberOfFreeClusters,ref ulong lpTtoalNumberOfClusters)LIBRARY "kernel32.dll" ALIAS FOR "GetDiskFreeSpaceA"PUBLIC FUNCTION ulong GetTickCount() LIBRARY "kernel32.dll"PUBLIC Subroutine GetSystemInfo(ref ws_info lpSystemInfo) LIBRARY "kernel32.dll"PUBLIC FUNCTION ulong waveOutGetNumDevs() LIBRARY "winmm.dll" PUBLIC FUNCTION ulong WNetGetUser(ref string lpName,ref string lpUserName,ref ulong lpnLength)LIBRARY "mpr" ALIAS FOR "WNetGetUserA"PUBLIC FUNCTION ulong GetSystemMetrics(ulong nIndex) LIBRARY"user32.dll"PUBLIC FUNCTION ulong GetWindowsDirectory(ref string lpBuffer,ulong nSize) LIBRARY "kernel32.dll"ALIAS FOR "GetWindowsDirectoryA"PUBLIC FUNCTION ulong GetSystemDirectory(ref string lpBuffer,ulong nSize) LIBRARY "kernel32.dll"ALIAS FOR "GetSystemDirectoryA"PUBLIC FUNCTION ulong GetTempPath(ulong nBufferLength,ref string lpBuffer) LIBRARY "kernel32.dll"ALIAS FOR "GetTempPathA"PUBLIC FUNCTION ulong GetKeyboardType(ulong nTypeFlag) LIBRARY"user32.dll"PUBLIC FUNCTION ulong QueryPerformanceFrequency(ref double lpFrequency) LIBRARY "kernel32.dll"PUBLIC FUNCTION ulong QueryPerformanceCounter(ref ulong lpPerformanceCount) LIBRARY "kernel32.dll"//PUBLIC FUNCTION ulong EnumPrinterDrivers(ref string pName,ref string pEnvironment,ulong Level,refByte pDriverInfo,ulong cdBuf,ref ulong pcbNeeded,ref ulong pcRetruned) LIBRARY"winspool.drv" ALIAS FOR "EnumPrinterDriversA"PUBLIC Subroutine GlobalMemoryStatus(ref ws_memory lpBuffer) LIBRARY "kernel32.dll"//FUNCTIONon ulong GlobalReAlloc(ulong hMem,ulong dwBytes,ulong wFlags) LIBRARY "kernel32.dll"PUBLIC FUNCTION ulong RegOpenKey(ulong hKey,ref string lpSubKey,ref ulong phkResult) LIBRARY"advapi32.dll" ALIAS FOR "RegOpenKeyA"PUBLIC FUNCTION ulong RegCloseKey(ulong hKey) LIBRARY "advapi32.dll" PUBLIC FUNCTION ulong RegQueryValueEx(ulong hKey,ref string lpValueName,ulong lpReserved,ref ulonglpType,ref long lpData,ref ulong lpcbData) LIBRARY "advapi32.dll" ALIAS FOR"RegQueryValueExA"//Function ulong EnumDisplaySettingsA(ulong xx,ulong modenum,ref DEVMODElpdevmode)Library"kernel32.dll"//PUBLIC FUNCTION ulong DeviceCapabilities(ref string lpDeviceName,ref string lpPort,ulongiIndex,ref string lpOutput,ref DEVMODE lpDevMode) LIBRARY "winspool.drv" ALIAS FOR"DeviceCapabilitiesA"PUBLIC FUNCTION ulong GetVolumeInformation(string lpRootPathName,ref string lpVolumeNameBuffer,ulong nVolumeNameSize,ref ulong lpVolumeSerialNumber,ref ulong lpMaximumComponentLength,ref ulong lpFileSystemFlags,ref string lpFileSystemNameBuffer,ulong nFileSystemNameSize)LIBRARY "kernel32.dll" ALIAS FOR "GetVolumeInformationA"FUNCTION long GetMACAddress(long lana,ref long addr[6]) Library "utils.dll"FUNCTION long GetLanaID(ref long lana[254]) LIBRARY "utils.dll" Function ulong GetMHZ()Library"mydll.dll"6、用户对象级函数1)、of_GetComputerName(),获得计算机的标识(即计算机名).ulong ll_comsizeulong ll_flagll_comsize = 256string ls_computerName//获得计算机的名称ll_flag = GetComputerName(ls_computerName,ll_comsize)If ll_flag <> 1 thenreturn "Get Computer Failure"elsereturn ls_computerNameEnd if2)、of_GetCpuInfo(),获得CPU一些基本信息.ws_cpuinfo lstr_cpustring ls_tempRegistryGet("HKEY_LOCAL_MACHINE\Hardware\Description\System\CentralPr ocessor\0","Identifier",RegString!,ls_temp)lstr_cpu.cpuid = ls_tempcpuid = ls_tempRegistryGet("HKEY_LOCAL_MACHINE\Hardware\Description\System\CentralPr ocessor\0","VendorIdentifier",RegString!,ls_temp)lstr_cpu.cpuprovider = ls_tempcpuprovider = ls_temp3)、of_GetCpuStatus(),获得CPU当前的使用频率,是从0%到100%之间的一个常数.ulong ls_username,lpcbData,lpTypelpcbData = 4lpType = 4ulong phkResultls_username = 0string lbSubkeylong lpDatalbSubkey = "PerfStats\StatData"ls_username= RegOpenKey(16*16*16*16*16*16*16*8+6,lbSubKey,phkResult)//The first parameters is HKEY_DYN_DATA = &80000006(HANDLE)string lpValueNamelpValueName = "KERNEL\CPUUsage"ls_username =RegQueryValueEx(phkResult,lpValueName,0,lpType,lpData,lpcbData)ls_username = RegCloseKey(phkResult)return lpdata4)、of_GetDiskVolume(),获得磁盘空间大小.ulong ll_MBFreeulong ll_MBTotalulong ll_sectorspercluster // Sectors/Clusterulong ll_bytespersector // Bytes/Sectorulong ll_numberoffreeclusters // Number of Free Clustersulong ll_toalnumberofclusters // Total Number of Clusters GetDiskFreeSpace(as_driver, ll_sectorspercluster,ll_bytespersector,ll_numberoffreeclusters,ll_toalnumberofclusters)sectorspercluster=ll_sectorsperclusterbytespersector=ll_bytespersectornumberoffreeclusters=ll_numberoffreeclusterstotalnumberofclusters=ll_toalnumberofclustersmbfree = (ll_sectorspercluster * ll_bytespersector *(ll_numberoffreeclusters / 1024)) / 1024mbtotal = (ll_sectorspercluster * ll_bytespersector *(ll_toalnumberofclusters / 1024)) / 10245)、of_GetDriverType(),获得各个磁盘的种类.ulong ul_drivetypestring ls_driveul_drivetype = GetDriveType(a_drivename)choose case ul_drivetypecase 0ls_Drive = "Unknown Driver"Case 1ls_Drive = "Drive Does Not exist"Case 2ls_Drive = "Floppy driver"Case 3ls_Drive = "HardDisk driver"Case 4ls_Drive = "Network driver"Case 5ls_Drive = "CD-ROM driver"Case 6ls_Drive = "RAM driver"End chooseReturn ls_drive8)、GetMhz:sle_mhz.text = String(uo_1.of_GetMhz())9)、GetOSVersion:sle_osversion.text = uo_1.of_getosversion()10)、GetServicePack:sle_servicePack.text = uo_1.of_GetServicePack()11)、GetSystemDir:sle_systemdir.text = uo_1.of_getSystemDir()12)、GetTempDir:sle_tempdir.text = uo_1.of_gettemppath()13)、GetSystemInfo:uo_1.of_GetsystemInfo()ddlb_systeminfo.additem("OemID = "+string(uo_1.dwoemid))ddlb_systeminfo.additem("PageSize = "+string(uo_1.dwPagesize)) ddlb_systeminfo.additem("MinAppAddress ="+string(uo_1.lpminappaddress))ddlb_systeminfo.additem("MaxAppAddress ="+string(uo_1.lpmaxappaddress))ddlb_systeminfo.additem("ActiveProcessorMask ="+string(uo_1.dwactiveprocessormask))ddlb_systeminfo.additem("NumberofProcessors ="+string(uo_1.dwnumberofprocessors))ddlb_systeminfo.additem("ProcessorType ="+string(uo_1.dwprocessortype))ddlb_systeminfo.additem("AllocationGranularity ="+string(uo_1.dwallocationgranularity))ddlb_systeminfo.additem("Reserved = "+string(uo_1.dwreserved)) ddlb_systeminfo.selectitem(5)14)、GetTickCount:sle_tickcount.text = uo_1.of_GetTickCount()15)、GetKeyBoardType:choose case uo_1.of_GetKeyboardType()case 1sle_keyboard.text = "IBM PC/XT( ) or compatible (83-key) keyboard" case 2sle_keyboard.text = "Olivetti 'ICO' (102-key) keyboard"case 3sle_keyboard.text = "IBM PC/AT (84-key) or similar keyboard"case 4sle_keyboard.text = "IBM enhanced (101- or 102-key) keyboard"case 5sle_keyboard.text = "N搞定ia 1050 and similar keyboards"case 6sle_keyboard.text = "N搞定ia 9140 and similar keyboards"case 7sle_keyboard.text = "Japanese keyboard"case elsesle_keyboard.text = "Hardware dependent and specified by the OEM" End choose16)、GetWindowMode:sle_windowmode.text = uo_1.of_getwindowmode()17)、GetWindowDir:sle_windowdir.text = uo_1.of_getwindowdir()18)、GetWaveDevice:sle_wavedevice.text = string(uo_1.of_getwavedevice())19)、GetIPAddress:sle_ipaddress.text = uo_1.of_getipaddress()20)、GetNetCard:sle_netcard.text = uo_1.of_getnetcard()21)、GetDiskInfo:lv_1.deletecolumns()lv_1.deleteitems()lv_1.addcolumn("Driver",Left!,250)lv_1.addcolumn("FileSystem",Left!,350)lv_1.addcolumn("VolumeName",Left!,400)lv_1.addcolumn("VolumeSerialNumber",Left!,650)lv_1.addcolumn("MaxComponentLength",Left!,650)lv_1.addcolumn("FileSystemFlags",Left!,500)lv_1.addcolumn("SectorsPerCluster",Left!,600)lv_1.addcolumn("BytesPerSector",Left!,500)lv_1.addcolumn("NumberofFreeClusters",Left!,700)lv_1.addcolumn("TotalNumberofClusters",Left!,750)lv_1.addcolumn("FreeDiskVolume",Left!,600)lv_1.addcolumn("TotalDiskVolume",Left!,650)lv_1.addcolumn("Used Ratio",Left!,350)String ls_drive,ls_statusls_drive = "abcdefghijklmnopqrstuvwxyz"Integer li_iFor li_i = 1 to 26ls_status = uo_1.of_getdrivetype(mid(ls_drive,li_i,1)+":\")if ls_status <>"Drive Does Not exist" Thenuo_1.of_getvolumeInfo(mid(ls_drive,li_i,1)+":\")uo_1.of_getdiskvolume(mid(ls_drive,li_i,1)+":\")Choose case lower(ls_status)case "floppy driver"if uo_1.mbtotal = 0 Thenlv_1.Additem(mid(ls_drive,li_i,1)+":\"+"~t"+trim(string(uo_1.FileSyst em))+"~t"+trim(string(uo_1.VolumeName))+"~t"+string(uo_1.VolumeSerial Number)+"~t"+string(uo_1.MaxComponentLength)+"~t"+string(uo_1.FileSys temFlags)+"~t"+string(uo_1.SectorsPerCluster)+"~t"+string(uo_1.BytesP erSector)+"~t"+string(uo_1.NumberofFreeClusters)+"~t"+string(uo_1.Tot alNumberofClusters)+"~t"+string(uo_1.mbfree)+"MB"+"~t"+string(uo_1.mb total)+"MB"+"~t"+"0%",1)elselv_1.Additem(mid(ls_drive,li_i,1)+":\"+"~t"+trim(string(uo_1.FileSyst em))+"~t"+trim(string(uo_1.VolumeName))+"~t"+string(uo_1.VolumeSerial Number)+"~t"+string(uo_1.MaxComponentLength)+"~t"+string(uo_1.FileSys temFlags)+"~t"+string(uo_1.SectorsPerCluster)+"~t"+string(uo_1.BytesPerSector)+"~t"+string(uo_1.NumberofFreeClusters)+"~t"+string(uo_1.Tot alNumberofClusters)+"~t"+string(uo_1.mbfree)+"MB"+"~t"+string(uo_1.mb total)+"MB"+"~t"+String(Long(((uo_1.mbtotal -uo_1.mbfree)/uo_1.mbtotal)*100))+"%",1)End ifCase "harddisk driver"if uo_1.mbtotal = 0 Thenlv_1.Additem(mid(ls_drive,li_i,1)+":\"+"~t"+trim(string(uo_1.FileSyst em))+"~t"+trim(string(uo_1.VolumeName))+"~t"+string(uo_1.VolumeSerial Number)+"~t"+string(uo_1.MaxComponentLength)+"~t"+string(uo_1.FileSys temFlags)+"~t"+string(uo_1.SectorsPerCluster)+"~t"+string(uo_1.BytesP erSector)+"~t"+string(uo_1.NumberofFreeClusters)+"~t"+string(uo_1.Tot alNumberofClusters)+"~t"+string(uo_1.mbfree)+"MB"+"~t"+string(uo_1.mb total)+"MB"+"~t"+"0%",2)elselv_1.Additem(mid(ls_drive,li_i,1)+":\"+"~t"+trim(string(uo_1.FileSyst em))+"~t"+trim(string(uo_1.VolumeName))+"~t"+string(uo_1.VolumeSerial Number)+"~t"+string(uo_1.MaxComponentLength)+"~t"+string(uo_1.FileSys temFlags)+"~t"+string(uo_1.SectorsPerCluster)+"~t"+string(uo_1.BytesP erSector)+"~t"+string(uo_1.NumberofFreeClusters)+"~t"+string(uo_1.Tot alNumberofClusters)+"~t"+string(uo_1.mbfree)+"MB"+"~t"+string(uo_1.mb total)+"MB"+"~t"+String(Long(((uo_1.mbtotal -uo_1.mbfree)/uo_1.mbtotal)*100))+"%",2)End ifcase "cd-rom driver"if uo_1.mbtotal = 0 Thenlv_1.Additem(mid(ls_drive,li_i,1)+":\"+"~t"+trim(string(uo_1.FileSyst em))+"~t"+trim(string(uo_1.VolumeName))+"~t"+string(uo_1.VolumeSerial Number)+"~t"+string(uo_1.MaxComponentLength)+"~t"+string(uo_1.FileSys temFlags)+"~t"+string(uo_1.SectorsPerCluster)+"~t"+string(uo_1.BytesP erSector)+"~t"+string(uo_1.NumberofFreeClusters)+"~t"+string(uo_1.Tot alNumberofClusters)+"~t"+string(uo_1.mbfree)+"MB"+"~t"+string(uo_1.mb total)+"MB"+"~t"+"0%",3)elselv_1.Additem(mid(ls_drive,li_i,1)+":\"+"~t"+trim(string(uo_1.FileSyst em))+"~t"+trim(string(uo_1.VolumeName))+"~t"+string(uo_1.VolumeSerial Number)+"~t"+string(uo_1.MaxComponentLength)+"~t"+string(uo_1.FileSys temFlags)+"~t"+string(uo_1.SectorsPerCluster)+"~t"+string(uo_1.BytesP erSector)+"~t"+string(uo_1.NumberofFreeClusters)+"~t"+string(uo_1.Tot alNumberofClusters)+"~t"+string(uo_1.mbfree)+"MB"+"~t"+string(uo_1.mb total)+"MB"+"~t"+String(Long(((uo_1.mbtotal -uo_1.mbfree)/uo_1.mbtotal)*100))+"%",3)End ifEnd ChooseEnd IfEnd For//FileSystem= lpFileSystemNameBuffer//VolumeName = lpVolumeNameBuffer//VolumeSerialNumber=lpVolumeSerialNumber//MaxComponentLength = lpMaximumComponentLength //FileSystemFlags=lpFileSystemFlags。
查看IP和MAC地址的命令
查看IP和MAC地址的命令[基于MS]查看MAC地址命令:1、使用ipconfig /all,可以看到具体配置。
(查看IP地址,网关,DNS MAC地址等 )2、如果和局域网中的其它计算机通信过的话,可以用arp -a 命令查看其MAC地址。
3、另外还可以用nbtstat -a [IP] ,不过只能查看某台具体机器的MAC地址(查看其他机器的MAC地址)。
[基于MS]查看IP地址命令:1、使用nbtstat -a,可以显示所有与你电脑相连的所有IP。
2、使用ipconfig /all,可以看到具体配置。
(查看IP地址,网关,DNS MAC地址等 )思科交换机查看MAC命令和查看IP地址命令:查看mac地址:show mac-address-table查看IP地址(二层交换机只能在vlan1上配置IP地址):show int vlan 1[基于MS]其他命令:输入:netstat -na (查看开启端口)输入:net start (查看开启服务)编辑本段CMD外部命令(调用其它程序来实现对对象的操作)1. gpedit.msc-----组策略2. sndrec32-------录音机3. Nslookup-------IP地址侦测器4. explorer-------打开资源管理器5. logoff---------注销命令6. tsshutdn-------60秒倒计时关机命令7. lusrmgr.msc----本机用户和组8. services.msc---本地服务设置9. oobe/msoobe /a----检查XP是否激活10. notepad--------打开记事本11. cleanmgr-------垃圾整理12. net start messenger----开始信使服务13. compmgmt.msc---计算机管理14. net stop messenger-----停止信使服务15. conf-----------启动netmeeting16. dvdplay--------DVD播放器17. charmap--------启动字符映射表18. diskmgmt.msc---磁盘管理实用程序19. calc-----------启动计算器20. dfrg.msc-------磁盘碎片整理程序21. chkdsk.exe-----Chkdsk磁盘检查22. devmgmt.msc--- 设备管理器23. regsvr32 /u *.dll----停止dll文件运行24. drwtsn32------ 系统医生25. rononce -p ----15秒关机26. dxdiag---------检查DirectX信息27. regedt32-------注册表编辑器28. Msconfig.exe---系统配置实用程序29. rsop.msc-------组策略结果集30. mem.exe--------显示内存使用情况31. regedit.exe----注册表32. winchat--------XP自带局域网聊天33. progman--------程序管理器34. winmsd---------系统信息35. perfmon.msc----计算机性能监测程序36. winver---------检查Windows版本37. sfc /scannow-----扫描错误并复原38. taskmgr-----任务管理器(2000/xp/200339. winver---------检查Windows版本40. wmimgmt.msc----打开windows管理体系结构(WMI)41. wupdmgr--------windows更新程序42. wscript--------windows脚本宿主设置43. write----------写字板44. winmsd---------系统信息45. wiaacmgr-------扫描仪和照相机向导46. winchat--------XP自带局域网聊天47. mem.exe--------显示内存使用情况48. Msconfig.exe---系统配置实用程序49. mplayer2-------简易widnows media player50. mspaint--------画图板51. mstsc----------远程桌面连接52. mplayer2-------媒体播放机53. magnify--------放大镜实用程序54. mmc------------打开控制台55. mobsync--------同步命令56. dxdiag---------检查DirectX信息57. drwtsn32------ 系统医生58. devmgmt.msc--- 设备管理器59. dfrg.msc-------磁盘碎片整理程序60. diskmgmt.msc---磁盘管理实用程序61. dcomcnfg-------打开系统组件服务62. ddeshare-------打开DDE共享设置63. dvdplay--------DVD播放器64. net stop messenger-----停止信使服务65. net start messenger----开始信使服务66. notepad--------打开记事本67. nslookup-------网络管理的工具向导68. ntbackup-------系统备份和还原69. narrator-------屏幕“讲述人”70. ntmsmgr.msc----移动存储管理器71. ntmsoprq.msc---移动存储管理员操作请求72. netstat -an----(TC)命令检查接口73. syncapp--------创建一个公文包74. sysedit--------系统配置编辑器75. sigverif-------文件签名验证程序76. sndrec32-------录音机77. shrpubw--------创建共享文件夹78. secpol.msc-----本地安全策略79. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码80. services.msc---本地服务设置81. Sndvol32-------音量控制程序82. sfc.exe--------系统文件检查器83. sfc /scannow---windows文件保护84. tsshutdn-------60秒倒计时关机命令85. tourstart------xp简介(安装完成后出现的漫游xp程序)86. taskmgr--------任务管理器87. eventvwr-------事件查看器88. eudcedit-------造字程序89. explorer-------打开资源管理器90. packager-------对象包装程序91. perfmon.msc----计算机性能监测程序92. progman--------程序管理器93. regedit.exe----注册表94. rsop.msc-------组策略结果集95. regedt32-------注册表编辑器96. rononce -p ----15秒关机97. regsvr32 /u *.dll----停止dll文件运行98. regsvr32 /u zipfldr.dll------取消ZIP支持99. cmd.exe--------CMD命令提示符100. chkdsk.exe-----Chkdsk磁盘检查101. certmgr.msc----证书管理实用程序102. calc-----------启动计算器103. charmap--------启动字符映射表104. cliconfg-------SQL SERVER 客户端网络实用程序105. Clipbrd--------剪贴板查看器106. conf-----------启动netmeeting107. compmgmt.msc---计算机管理108. cleanmgr-------垃圾整理109. ciadv.msc------索引服务程序110. osk------------打开屏幕键盘111. odbcad32-------ODBC数据源管理器112. oobe/msoobe /a----检查XP是否激活113. lusrmgr.msc----本机用户和组114. logoff---------注销命令115. iexpress-------木马捆绑工具,系统自带116. Nslookup-------IP地址侦测器一,ping它是用来检查网络是否通畅或者网络连接速度的命令。
怎么查询局域网内全部电脑IP和mac地址等信息
怎么查询局域网内全部电脑IP和mac地址等信息
打开DOS命令提示符窗口,在窗口中输入命令“nbtstat -a IP”,如以上面查到的
“10.10.3.21”为例,输入“nbtstat -a 10.10.3.21”,则显示结果为:
在上面的查询结果窗口中,我们通过IP就查询到了确切的以下信息:计算机名称、此电脑加入的工作组或域名称、MAC地址。
查询本机IP——窗口查看
直接单击任务栏最右边的“本地连接”图标,会打开“本地连接状态”对话框,如图:
单击弹出对话框中的“支持”选项卡,在下面的“连接状态”中能够看到本机的基本IP信息,如上图;
再单击“本地连接状态”对话框中的“详细信息”按钮,将弹出“网络连接详细信息”对话框:
该对话框中能够显示详细的本机网络信息,如IP地址、MAC地址、子网掩码和默认网关及NDS等信息,如上图。
局域网查看工具LanSee使用教程【图文】
局域网查看工具(LanSee)是一款对局域网上的各种信息进行查看的工具。
LanSee采用多线程or技术,可以快速搜索出局域网中的计算机(包括IP地址、MAC地址、计算机名称、工作组、用户名、操作系统)、共享资源、共享文件。
集成了网络嗅探功能,可以捕获各种数据包(tcp,udp,icmp,arp),嗅探局域网上的QQ号,局域网上各主机的流量查看,从流过网卡的数据中嗅探出音乐、视频、图片等文件;集成了局域网聊天和文件共享功能(不需要服务器),可以与正在使用该软件的用户进行群聊,也可以和指定的用户进行私聊,可以指定条件搜索LanSee用户共享的文件;集成了计算机管理功能,可以向开启信使服务的计算机发短消息,可以远程关闭/重启提供权限的计算机;集成了文件复制的功能,可以复制网上邻居上的共享文件和LanSee用户共享的文件以及网络嗅探功能嗅探出的文件,支持断点传输;她还可以实现列出进程打开的所有网络端口,以及连接情况,快速扫描tcp端口,查看适配器信息,Ping,Traceroute等功能,并且你可以将你不需要的功能禁用或卸载。
该软件是一款绿色软件,解压后直接打开运行,无需安装,支持在线升级。
LanSee使用教程1、运行程序后,一般我是先点击【搜索计算机】,看看有哪些同事在局域网上;2、如果我想与某位同事联系业务;可先点击【发消息】→在【添加计算机】的左边输入此人IP地址当然,【发消息】时还可以选择匿名发送(即在接受端不显示出发送人的IP地址及机器名)3、【搜索工作组】点击后即搜索局域网内有几个工作组;4、【搜索共享资源】点击后即可搜索出局域网内有多少可供使用的共享资源;5、【搜索共享文件】点击后即可罗列出局域网内可供使用的共享资源都在哪个机器的什么目录下;6、【查找文件】点击后即可在局域网内可供使用的共享资源中查找指定的文件或类型;8、【远程管理】一般用不着,它是专门供网络管理员使用的;例如某人出差了,可其他的人要调用其机器上的共享数据资源时,网络管理员使用【远程管理】功能可将此人的电脑唤醒(当然电9、在【搜索工作组】下面的方框中输入计算机名称→再点击【计算机名–>IP】→即可得知其IP的。
网络管理之IP-MAC地址工具
1.4 IP/MAC综合工具
TCPView软件可以实时反映每一秒网络连接的变化, 并以不同的颜色标记不同的变化状态。
●Tcpview默认刷新速度为1s,可以在第一时 间发现危险程序,因此,可以利用该工具来 监视网络入侵。
●对于异常程序,可以使用“end process”命 令,来结束该连接进程。
1.1.2 IP地址管理工具——IPMaster
IPMaster是进行IP地址管理的工具软件,它提供 可视化的IP地址分配、自动子网计算、掩码计算、 子网划分、网段扫描、主机监控、Ping、 TraceRoute、Telnet、netsend等功能,可以提高 网管人员的工作效率和减少失误。本软件的目的 是为了有序和高效地实现大中小型企业网IP地址 的分配和管理。
1.3 MAC地址获取工具
1.3.1 获取远程计算机MAC地址工具——nbtstat
nbtstat命令是Windows下自带的NetBIOS管理 工具,用于显示本地计算机和远程计算机的 基于TCP/IP协议的NetBIOS统计资料、 NetBIOS名称表和NetBIOS名称缓存。
注意:nbtstat命令区分大小写
●使用不带参数的nbtstat命令,将会显示有关该命令 的帮助信息。
● 查看本地计算机的NETBIOS名称表
● 查看名为***的远程计算机的NETBIOS名称表
● 查看IP地址为***的远程计算机的NETBIOS名称表
● 列出远程计算机名称及其IP地址缓存
●使用不带参数的nbtstat命令,将会显示有关该命令 的帮助信息。
● 1.1.4 超级扫描工具
1.1.1 Windows系统内置工具——ipconfig
用于显示本地计算机网络适配器的物 理地址和IP地址等配置信息,在网络中使 用DHCP服务时,还可以根据需要释放、重 新获取IP地址。
用nbtstat查IPmac地址计算机名
nቤተ መጻሕፍቲ ባይዱtstat
netstat –s本选项能够按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么我们就可以 用本选项来查看一下所显示的信息。我们需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
-n—列出本地机的 NetBIOS 名称,此参数与上面所介绍的一个工具软件“netstat”中加“ -a”参数功能类似,只是这个是检查本地的,如果把netstat -a后面的IP换为自己的就和nbtstat -n的效果是一样的了。
-r—列出 Windows 网络名称解析的名称解析统计。在配置使用 WINS 的 Windows 2000 计算机上,此选项返回要通过广播或 WINS 来解析和注册的名称数。
netstat –e本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量)。
netstat –r本选项可以显示关于路由表的信息,类似于后面所讲使用route print命令时看到的 信息。除了显示有效路由外,还显示当前有效的连接。
查看本机和局域网pc的MAC地址的常用方法
查看本机和局域网pc的MAC地址的常用方法如何查看局域网内其他计算机的MAC地址和IP方法1:首先要知道那个计算机的某个信息。
如果知道计算机名的话,可以PING 计算机名,这样就会知道IP,然后再用 NBTSTAT -a IP,就能知道物理地址。
如果知道IP的话,直接用nbtstat -a IP,就能知道所有的。
方法2:DOS命令批量统计局域网内各台电脑的IP地址和其相对应的MAC地址,这样的好处是可以便捷、准确的控制管理每台电脑,发现某台电脑中毒或者数据流量异常能及时排查、封网。
能实现这种功能的工具在网上有很多,例如:超级网管(SuperLANadmin)等等,喜欢的朋友可以自己搜索一下。
在这里我主要谈的是调用本机DOS命令来实现上述结果,毕竟我们不可能天天把工具带在身边。
地址解析协议(ARP)用于实现IP地址到网络接口硬件地址的映射,该命令只有在安装了 TCP/IP 协议之后才可用。
当某主机要向以太网中另一台主机发送IP数据时,它首先根据目的主机的IP地址在ARP高速缓存中查询相应的以太网地址,ARP高速缓存是主机维护的一个IP地址到相应的以太网地址的映射表。
如果查到匹配的结点,则相应的以太网地址被写入以太网帧首部,数据包被加入到输入到输出列队等待发送。
如果查询失败,ARP会先保留等待发送的IP数据包,然后广播一个询问目的主机硬件地址的ARP报文,等收到回答后再把IP数据包发送出去。
命令如下:运行cmd.exe后执行:for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.1.%iarp -a回车,一只烟的功夫就会看到收集好列表。
(注意:把192.168.1 IP地址替换成你所在局域网的IP地址)FOR对一组文件逐一运行一条命令。
该命令可用在批处理文件中,也可命令提示符下直接调用。
语法:FOR在批处理程序中的使用语法如下:FOR %%变量 IN (集合) DO 命令 [命令参数]FOR在命令提示符下的使用语法如下:FOR %变量 IN (集合) DO 命令 [参数:%%变量或%变量代表一个可替换的变量。
pb中调用api
pb中调用api在现代软件开发中,PB(PowerBuilder)和API(应用程序编程接口)技术被广泛应用。
将这两者结合,可以实现强大的功能和高效的数据处理。
本文将详细介绍如何在PB中调用API,以及相关实用案例和注意事项。
1.什么是PB和API?PB(PowerBuilder)是一款功能强大的编程工具,用于构建企业级应用程序。
它支持多种数据库连接,具有良好的跨平台性能,易于学习和使用。
API(应用程序编程接口)是软件开发中的一种关键技术,它允许不同软件之间的组件相互通信和协作。
API提供了一种标准化的方式,使开发者可以方便地访问第三方软件的功能和数据。
2.为什么要在PB中调用API?在PB中调用API有以下几个优点:- 扩展功能:通过调用API,可以充分利用第三方软件的功能,提高开发效率。
- 数据共享:API提供了访问外部数据的标准方式,有利于实现数据共享和整合。
- 跨平台:API通常具有较好的平台兼容性,可以在不同操作系统和设备上使用。
- 降低开发成本:调用现有API可以避免重复开发,降低开发成本。
3.如何实现PB与API的调用?要在PB中调用API,一般需要以下几个步骤:- 查找并了解所调用API的文档,了解其功能、参数、返回值等。
- 根据API文档,在PB中编写调用API的代码。
通常,这包括设置API 所需的参数、处理返回值等。
- 调试和优化代码,确保调用API的正确性和性能。
4.调用API的实用案例以下是一个调用API的实用案例:假设我们需要一个功能,可以获取当前天气预报信息。
可以通过调用某气象部门的API来实现这一功能。
首先,查找并了解该API的文档,了解其功能、参数和返回值。
然后,在PB中编写代码调用API,获取天气预报数据,并将其显示在应用程序中。
5.注意事项和优化建议- 在调用API时,注意遵循文档要求,确保参数设置正确。
- 为了提高调用API的性能,可以考虑使用批量请求、缓存等技术。
局域网查看工具(LanSee) 使用指南
看工具(LanSee) 使用指南点这里下载==》局域网查看工具(LanSee) v1.661、运行程序后,一般我是先点击【搜索计算机】,看看有哪些同事在局域网上;2、如果我想与某位同事联系业务;可先点击【发消息】→在【添加计算机】的左边输入此人IP地址→点击【添加计算机】→然后在【消息内容】的下方框中输入需要发送的文字→点击【发送】→这时在上面的【是否成功】可以看到消息内容是否发送成功;当然,【发消息】时还可以选择匿名发送(即在接受端不显示出发送人的IP地址及机器名)3、【搜索工作组】点击后即搜索局域网内有几个工作组;4、【搜索共享资源】点击后即可搜索出局域网内有多少可供使用的共享资源;5、【搜索共享文件】点击后即可罗列出局域网内可供使用的共享资源都在哪个机器的什么目录下;6、【查找文件】点击后即可在局域网内可供使用的共享资源中查找指定的文件或类型;7、【复制文件】就不用解释了吧? ^_^8、【远程管理】一般用不着,它是专门供网络管理员使用的;例如某人出差了,可其他的人要调用其机器上的共享数据资源时,网络管理员使用【远程管理】功能可将此人的电脑唤醒(当然电脑中必须装客户端程序,而且电脑不能断电关闭,而是处于休眠待机状态);9、在【搜索工作组】下面的方框中输入计算机名称→再点击【计算机名-->IP】→即可得知其IP的地址;10、在【搜索工作组】下面的方框中输入IP的地址→再点击【IP-->计算机名】→即可得知其计算机的名称;11、在【搜索工作组】下面的方框中输入IP的地址→再点击【打开该计算机】→即可看到该计算机的可供使用的全部共享资源;12、在【搜索工作组】下面的方框中输入IP的地址→再点击【Ping】→即可得知该地址是否已被占用或连接的速度;局域网查看工具(LanSee) 使用指南(2)时间:2009-07-23 15:37来源:未知作者:编辑B 点击: 2753次13、在【搜索工作组】下面的方框中输入IP的地址再点击【Nbtstat】即可得知Nb的测试情况; 14、当点击【搜索】右边的【工具】时,会新看到一个【端口查看工具】,有兴趣就自己看看吧,不会有什么难度的(【文件工具13、在【搜索工作组】下面的方框中输入IP的地址→再点击【Nbtstat】→即可得知Nb的测试情况;14、当点击【搜索】右边的【工具】时,会新看到一个【端口查看工具】,有兴趣就自己看看吧,不会有什么难度的(【文件工具】与【管理工具】已在主窗口有了快捷键);15、关于点击【设置】后,所出现的对话框也应该是可以理解的啦。
纯PBAPI取局域网计算机名、IP、MAC、工作组等信息
纯PBAPI取局域网计算机名、IP、MAC、工作组等信息使用的API:Function boolean IsWindow (Long hwnd ) Library "user32.dll"FUNCTION ulong WinExec(ref string lpCmdLine,ulong nCmdShow) LIBRARY "kernel32.dll"使用到的《PB扩充函数1.5》中的函数uf_Network_Ping、uf_file_isavailable。
虽然使用《PB扩充函数1.5》时需要一个mhand.dll,但是我们用到的2个函数并没有使用到mhand.dll,所以也算是没有借助第三方DLL。
检索IP等信息使用2个自建的函数:f_searchip():string ls_ip,ls_temp//ls_temp为需要检索的ip段,格式为xxx.xxx.xxx. 如:192。
168。
0。
ls_temp=192.168.0.for i=1 to 255ls_ip=ls_temp + string(i)f_searchip1(ls_ip)nextf_searchip1(string ls_ip)://得到一个一个ip地址计算机信息并且插入数据窗口u_kchs lu_kchsstring ls_templong ll_row,pinteger li_filenumulong ll_handlestring ls_pcname,ls_mac,ls_groupsle_ts.text='正在检索'+as_ip//如果能ping通为有效ipif not(lu_kchs.uf_Network_Ping(as_ip)) then return//使用NBTSTAT命令取得相关信息ls_temp="nbtstat -a "+as_ip+">temp\"+as_ipli_FileNum = FileOpen("run.bat",StreamMode!, Write!, LockWrite!, Replace!)FileWrite(li_FileNum,ls_temp) FileClose(li_filenum)ls_temp='run.bat'll_handle=WinExec(ls_temp,0)//等待DOS窗口关闭Do While isWindow(ll_handle) Yield()Loop//等待临时文件创建成功do while not(lu_kchs.uf_file_isavailable("temp\"+as_ip)) Yield()Loop//取计算机mac,工作组等信息li_FileNum=FileOpen("temp\"+as_ip,StreamMode!,Read! ) if li_FileNum>0 thenFileRead(li_FileNum,ls_temp)FileClose(li_filenum)FileDelete("temp\"+as_ip)p=pos(ls_temp,'MAC Address = ')ls_mac=mid(ls_temp,p + 14,17)p=pos(ls_temp,'UNIQUE Registered')ls_pcname=trim(mid(ls_temp,p - 21,14))p=pos(ls_temp,'GROUP Registered')ls_group=trim(mid(ls_temp,p - 21,14))if ls_mac='\NetBT_Tcpip_{942' then ls_mac='其他设备'if ls_mac<>'其他设备' and trim(ls_mac) <> '' then//因为使用DHCP动态分配IP,所以根据MAC地址来标识唯一的计算机ll_row=dw_cx.find("mac='"+ls_mac+"'",1,dw_cx.rowcount())if ll_row>0 then//如果原来有数据则修改dw_cx.o b j e c t.mac[ll_row]=ls_macdw_cx.o b j e c t.pcname[ll_row]=ls_pcname dw_cx.o b j e c t.workgroup[ll_row]=ls_group dw_cx.o b j e c t.ip[ll_row]=as_ipdw_cx.o b j e c t.online[ll_row]=1elsell_row=dw_cx.insertrow(0)dw_cx.o b j e c t.rowid[ll_row]=0dw_cx.o b j e c t.mac[ll_row]=ls_macdw_cx.o b j e c t.pcname[ll_row]=ls_pcname dw_cx.o b j e c t.workgroup[ll_row]=ls_group dw_cx.o b j e c t.ip[ll_row]=as_ipdw_cx.o b j e c t.online[ll_row]=1end ifend ifend if不足之处请大家指正,完。
使用API函数获取局域网计算机名称和IP
name:包含计算机名称的字符串。 下面以一个具体实例介绍如何获得网络计算的名称和 IP。程序设计具体步骤如下。 ch1803 实例位置:mr\18\sl\03 (1)新建一个基于对话框的应用程序,设计对话框资源如图 18.5 所示。
m_grid.InsertColumn(1,"IP 地址",LVCFMT_LEFT,200,0); DWORD Count=0xFFFFFFFF,Bufsize=4096,Res; NETRESOURCE* nRes; NETRESOURCE* nRes1; NETRESOURCE* nRes2; HANDLE lphEnum; LPVOID Buf = new char[4096]; LPVOID Buf1 = new char[4096]; LPVOID Buf2 = new char[4096]; //打开列举的网络资源 Res = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONTAINER,NULL,&lphEnum); //获取列举的网络资源信息 Res=WNetEnumResource(lphEnum,&Count,Buf,&Bufsize); nRes=(NETRESOURCE*)Buf; for(DWORD n=0;n<Count;n++,nRes++) { DWORD Count1=0xFFFFFFFF; Res = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONTAINER,nRes,&lphEnum); Res=WNetEnumResource(lphEnum,&Count1,Buf1,&Bufsize); nRes1=(NETRESOURCE*)Buf1; for(DWORD i=0;i<Count1;i++,nRes1++) { DWORD Count2=0xFFFFFFFF; Res = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONTAINER,nRes1,&lphEnum); Res=WNetEnumResource(lphEnum,&Count2,Buf2,&Bufsize); nRes2=(NETRESOURCE*)Buf2; for(DWORD j=0;j<Count2;j++,nRes2++) { m_grid.InsertItem(j,0); CString sName=nRes2->lpRemoteName; sName=sName.Right(sName.GetLength()-2); m_grid.SetItemText(j,0,sName); CString str=""; struct hostent * pHost; pHost = gethostbyname(sName); if(pHost==NULL) { m_grid.SetItemText(j,1,"无法获得 IP 地址"); } else
如何根据IP查找计算机名
如何根据IP查找计算机名
如何根据IP查找计算机名
IP地址是互联网协议地址的简称。
IP地址是一个32位的二进制数,如192.168.1.1。
下面就说下如何简单的.查看计算机IP,如何根据IP查找局域网计算机名。
1、按下电脑键盘windows+R打开运行管理器。
在里面输入CMD后按下键盘Enter确认键!
2、在弹出的CMD工具栏直接输入:ipconfig然后按下键盘确认键!
3、之后就可以看到自己电脑的内网IP地址、网关等等信息!
4、如果需要查找计算机名的话直接在下面输入:nbtstat -A 192.168.1.123或者其他内网的IP。
然后按下键盘确认键。
5、就能看到电脑MAC地址,计算机名称等信息。
6、如果想查询自己的广域网IP地址的话可以打开浏览器。
早搜索页输入:IP地址查询,就可以看到自己外网的地址啦!。
Windows 7如何查看和修改计算机名、域和工作组
计算机名是唯一的权次于IP地址的一个设置,在一个局域网内,出现两个IP相同的IP地址的话,那么肯定有一台电脑上不了网。
而出现两个相同的计算机名的话,同样是有一台电脑是不可能上网的。
出现这种情况只有另一台电脑修改计算机名了,一般默认的计算机名是随机生成的上达十几甚至几十个的字母和数字排列的计算机名。
当然了,这样的计算机名永远不可能重复,除非有人改成你的一样。
但是在局域网内访问网上邻居的时候,出现一个很长很乱的乱七八糟的名字!相信自己都会记不住吧。
这里就说一下怎么修改自己的计算机名;
在“我的电脑”图标上右键属性,如下图1所示;
还有一种方法:在控制面板里直接调系统属性窗口;开始菜单》控制面板》系统属性;是同样可以调出来的。
还有一种方法:开始菜单》运行“sysdm.cpl”同样是可以调出来的。
还有一种方法:在C:\WINDOWS\system32目录下找到sysdm.cpl双击即可同样打开。
调出系统属性的方法有多种,只是大概的说一下这几种常用的方法。
(图1 我的电脑)
调出“系统属性”之后,点“计算机名”选项卡,就可以查看到自己的计算机名了,如果想修改计算机名的话,下面还有一个更改(C)的按扭,单击即可修改成自己想要的计算机名了;
(图2 系统属性计算机名管理)
2.调出设备管理器的时候也是可以看到计算机名的。
如下图3所示
(图3 设备管理器)
3.directx诊断工具查看计算机名;
查看计算机名的方法有很多种,本文只是说几种常见的方法,比如一些优化软件一般都可以查看到。
就算不用一些优化的软件,电脑中自带的也有很多种方法查看到;/1/24908.html。
使用ARP获取局域网内设备IP和MAC地址
使⽤ARP获取局域⽹内设备IP和MAC地址根据Arp列表数据,查询本地设备在线状态使⽤ arp -a 获得所有内⽹地址,⾸先看Mod对象public struct MacIpPair{public string HostName;public string MacAddress;public string IpAddress;public override string ToString(){string str = "";str += $"HostName:{HostName}\t{IpAddress}\t{MacAddress}";return str;}}其次看看查询⽅法:public List<MacIpPair> GetAllMacAddressesAndIppairs(){List<MacIpPair> mip = new List<MacIpPair>();System.Diagnostics.Process pProcess = new System.Diagnostics.Process();pProcess.StartInfo.FileName = "arp";pProcess.StartInfo.Arguments = "-a ";eShellExecute = false;pProcess.StartInfo.RedirectStandardOutput = true;pProcess.StartInfo.CreateNoWindow = true;pProcess.Start();string cmdOutput = pProcess.StandardOutput.ReadToEnd();string pattern = @"(?<ip>([0-9]{1,3}\.?){4})\s*(?<mac>([a-f0-9]{2}-?){6})";foreach (Match m in Regex.Matches(cmdOutput, pattern, RegexOptions.IgnoreCase)){mip.Add(new MacIpPair(){MacAddress = m.Groups["mac"].Value,IpAddress = m.Groups["ip"].Value});}return mip;}在写个调⽤就可以了:class Program{static void Main(string[] args){var arp = new Comm.ArpHelper();var i = arp.GetLocalIpInfo();Console.WriteLine(i.ToString());var l = arp.GetAllMacAddressesAndIppairs();l.ForEach(x =>{//Console.WriteLine($"IP:{x.IpAddress} Mac:{x.MacAddress}");Console.WriteLine(x.ToString());});Console.WriteLine("\r\n==================================================\r\n");Console.WriteLine("本地⽹卡信息:");Console.WriteLine(arp.GetLocalIpInfo() + " == " + arp.getLocalMac());string ip = "192.168.68.42";Console.Write("\n\r远程 " + ip + " 主机名信息:");var hName = arp.GetRemoteHostName(ip);Console.WriteLine(hName);Console.WriteLine("\n\r远程主机 " + hName + " ⽹卡信息:");string[] temp = arp.getRemoteIP(hName);for (int j = 0; j < temp.Length; j++){Console.WriteLine("远程IP信息:" + temp[j]);}Console.WriteLine("\n\r远程主机MAC :");Console.WriteLine(arp.getRemoteMac("192.168.68.21", "192.168.68.255"));Console.WriteLine(arp.getRemoteMac("192.168.68.21", "192.168.68.44"));Console.ReadKey();}}=====================================================================c# 通过发送arp包获取ip等信息利⽤dns类和WMI规范获取IP及MAC地址在C#编程中,要获取主机名和主机IP地址,是⽐较容易的.它提供的Dns类,可以轻松的取得主机名和IP地址.⽰例:string strHostName = Dns.GetHostName(); //得到本机的主机名IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机IPstring strAddr = ipEntry.AddressList[0].ToString(); //假设本地主机为单⽹卡在这段代码中使⽤了两个类,⼀个是Dns类,另⼀个为IPHostEntry类,⼆者都存在于命名空间中.Dns类主要是从域名系统(DNS)中检索关于特定主机的信息,上⾯的代码第⼀⾏就从本地的DNS中检索出本地主机名.IPHostEntry类则将⼀个域名系统或主机名与⼀组IP地址相关联,它与DNS类⼀起使⽤,⽤于获取主机的IP地址组.要获取远程主机的IP地址,其⽅法也是⼤同⼩异.在获取了IP地址后,如果还需要取得⽹卡的MAC地址,就需要进⼀步探究了.这⾥⼜分两种情况,⼀是本机MAC地址,⼆是远程主机MAC地址.⼆者的获取是完全不同的.在获取本机的MAC地址时,可以使⽤WMI规范,通过SELECT语句提取MAC地址.在.NET框架中,WMI规范的实现定义在System.Management命名空间中.ManagementObjectSearcher类⽤于根据指定的查询检索管理对象的集合ManagementObjectCollection类为管理对象的集合,下例中由检索对象返回管理对象集合赋值给它.⽰例:ManagementObjectSearcher query =new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration") ; ManagementObjectCollection queryCollection = query.Get();foreach( ManagementObject mo in queryCollection ){if(mo["IPEnabled"].ToString() == "True")mac = mo["MacAddress"].ToString();}获取远程主机的MAC地址时,需要借⽤API函数SendARP.该函数使⽤ARP协议,向⽬的主机发送ARP包,利⽤返回并存储在⾼速缓存中的IP和MAC地址对,从⽽获取远程主机的MAC地址.⽰例:Int32 ldest= inet_addr(remoteIP); //⽬的ipInt32 lhost= inet_addr(localIP); //本地iptry{Int64 macinfo = new Int64();Int32 len = 6;int res = SendARP(ldest,0, ref macinfo, ref len); //发送ARP包return Convert.ToString(macinfo,16);}catch(Exception err){Console.WriteLine("Error:{0}",err.Message);}return 0.ToString();但使⽤该⽅式获取MAC时有⼀个很⼤的限制,就是只能获取同⽹段的远程主机MAC地址.因为在标准⽹络协议下,ARP包是不能跨⽹段传输的,故想通过ARP协议是⽆法查询跨⽹段设备MAC地址的。
IP与mac查询工具
IP地址管理ipmaster
• 整个界面分为三部分,左边是树状显示的IP拓 扑,右边上半部分是子网或主机的属性,右边 下半部分是子网的内容. • 新建管理网段 新建管理网段:点击“文件->新建管理网段”菜 单项,出现“新建管理网段”对话框,输入 “网段名称”和“网段地址”后,系统会根据 地址类型自动确定网络掩码,并自动显示此网 段的类型、子网ID、地址范围等信息,用户也 可以修改掩码以获得自己想要的网段,修改掩 码有两种方法:直接输入掩码地址或拖动掩码 位数滑块.
7
IP信息查看工具——ipconfig ——ipconfig
• ipconfig [/all /renew [adapter] /release [adapter]] • ipconfig--当使用IPConfig时不带任何参 数选项,那么它为每个已经配置了的接 口显示IP地址、子网掩码和缺省网关值
5
IP信息查看工具——ipconfig ——ipconfig
• 该诊断命令显示所有当前的 TCP/IP 网 络配置值。了解计算机当前的IP地址、 子网掩码和缺省网关实际上是进行测试 和故障分析的必要项目。 • IPConfig可以了解计算机是否成功的租 用到一个IP地址,如果租用到则可以了 解它目前分配到的是什么地址。
6ipip信息查看工具信息查看工具ipconfigipconfig?ipconfigallrenewadapterreleaseadapter?ipconfig当使用ipconfig时不带任何参ipconfig当使用ipconfig时不带任何参数选项那么它为每个已经配置了的接口显示ip地址子网掩码和缺省网关值7ipip信息查看工具信息查看工具ipconfigipconfig?ipconfigallrenewadapterreleaseadapter?ipconfig当使用ipconfig时不带任何参ipconfig当使用ipconfig时不带任何参数选项那么它为每个已经配置了的接口显示ip地址子网掩码和缺省网关值8ipip信息查看工具信息查看工具ipconfigipconfig?ipconfigall产生完整显示
获取局域网计算机名称和IP
实例442 获取局域网计算机名称和IP摘要:《软件工程师典藏——Visual Basic程序开发范例宝典》一书所选实例覆盖了开发中的热点问题和关键问题。
全书按实际应用进行分类,可以使读者在短时间内掌握更多有用的技术,快速提高编程水平。
本文介绍了获取局域网计算机名称和IP。
15.2 局域网控制与管理局域网的管理是局域网编程中不可缺少的组成部分。
网络管理者需要实时掌握局域网内部计算机的连接状态,局域网管理者也必须利用监测程序监测局域网内部所有的计算机。
同时,为保证局域网的稳定,监测程序又不能占用过多的系统资源。
本小节将介绍在局域网中如何实现获取局域网计算机名称和IP以及如何监控局域网上的计算机和用户信息。
实例442 获取局域网计算机名称和IP实例说明在本程序运行时,检索整个局域网,将局域网中的计算机显示在ListBox控件中,当用户单击ListBox控件中的计算机名时,右边的文本框就可以显示该计算机的机器名和对应的IP地址。
其实现效果如图15.6所示。
技术要点本实例的实现主要是通过使用WNetOpenEnum函数获得所有网络资源的信息过程,使用WNetEnumResource函数可以列出所有网络信息。
使用WNetCloseEnum函数结束列举网络资源的过程。
利用自定义函数GetIPAddress,获得所选择的计算机的IP地址。
其中,全部的程序代码参见本书附带光盘。
实现过程(1)新建一个标准工程,创建一个新窗体,默认名为Form1。
(2)在窗体上添加两个Frame控件,设置“名称”属性分别为Frame1和Frame2。
(3)在Frame1控件上添加一个ListBox控件,用于显示局域网络中的计算机名。
(4)在Frame2控件上添加两个Label控件,两个TextBox控件,分别命名为TxtCmpName和TxtIp,分别用于显示计算机名和该计算机的IP地址。
(5)在窗体上添加一个Image控件,用于显示图片信息。
局域网怎么查看工作组名和计算机名
局域网怎么查看工作组名和计算机名
局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能,那么你知道局域网怎么查看工作组名和计算机名吗?下面是店铺整理的一些关于局域网查看工作组名和计算机名的相关资料,供你参考。
局域网查看工作组名和计算机名的步骤1
右击【我的电脑】图标,执行【属性】命令,如图1所示,弹出【系统属性】对话框。
局域网查看工作组名和计算机名的步骤2
选择【计算机名】选项卡,可以査看到“完整的计算机名称”和“工作组”信息,如图2所示
此计算机的名称是ya-xx-lcf,工作组名是MSHOME。
如果需要修改计算机名,可单击【更改】按钮进行设置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用的API:
ls_mac=mid(ls_temp,p + 14,17)
p=pos(ls_temp,'UNIQUE Registered')
ls_pcname=trim(mid(ls_temp,p - 21,14))
//等待临时文件创建成功
do while not(lu_kchs.uf_file_isavailable("temp\"+as_ip))
Yield()
Loop
//取计算机mac,工作组等信息
li_FileNum=FileOpen("temp\"+as_ip,StreamMode!,Read! )
dw_cx.o b j e c t.workgroup[ll_row]=ls_group
dw_cx.o b j e c t.ip[ll_row]=as_ip
dw_cx.o b j e c t.online[ll_row]=1
//使用NBTSTAT命令取得相关信息
ls_temp="nbtstat -a "+as_ip+">temp\"+aseOpen("run.bat",StreamMode!, Write!, LockWrite!, Replace!)
FileWrite(li_FileNum,ls_temp)
FileClose(li_filenum)
ls_temp='run.bat'
ll_handle=WinExec(ls_temp,0)
//等待DOS窗口关闭
Do While isWindow(ll_handle)
Yield()
Loop
dw_cx.o b j e c t.pcname[ll_row]=ls_pcname
dw_cx.o b j e c t.workgroup[ll_row]=ls_group
dw_cx.o b j e c t.ip[ll_row]=as_ip
uf_Network_Ping、uf_file_isavailable。虽然使用《PB扩充函数1.5》时需要一个mhand.dll,但是我们用到的2个函数并没有使用到mhand.dll,所以也算是没有借助第三方DLL。
检索IP等信息使用2个自建的函数:
f_searchip():
else
ll_row=dw_cx.insertrow(0)
dw_cx.o b j e c t.rowid[ll_row]=0
dw_cx.o b j e c t.mac[ll_row]=ls_mac
ulong ll_handle
string ls_pcname,ls_mac,ls_group
sle_ts.text='正在检索'+as_ip
//如果能ping通为有效ip
if not(lu_kchs.uf_Network_Ping(as_ip)) then return
if ls_mac<>'其他设备' and trim(ls_mac) <> '' then
//因为使用DHCP动态分配IP,所以根据MAC地址来标识唯一的计算机
ll_row=dw_cx.find("mac='"+ls_mac+"'",1,dw_cx.rowcount())
string ls_ip,ls_temp
//ls_temp为需要检索的ip段,格式为xxx.xxx.xxx. 如:192。168。0。
ls_temp=192.168.0.
for i=1 to 255
ls_ip=ls_temp + string(i)
f_searchip1(ls_ip)
p=pos(ls_temp,'GROUP Registered')
ls_group=trim(mid(ls_temp,p - 21,14))
if ls_mac='\NetBT_Tcpip_{942' then ls_mac='其他设备'
next
f_searchip1(string ls_ip):
//得到一个一个ip地址计算机信息并且插入数据窗口
u_kchs lu_kchs
string ls_temp
long ll_row,p
integer li_filenum
Function boolean IsWindow (Long hwnd ) Library "user32.dll"
FUNCTION ulong WinExec(ref string lpCmdLine,ulong nCmdShow) LIBRARY "kernel32.dll"
使用到的《PB扩充函数1.5》中的函数
if ll_row>0 then
//如果原来有数据则修改
dw_cx.o b j e c t.mac[ll_row]=ls_mac
dw_cx.o b j e c t.pcname[ll_row]=ls_pcname
dw_cx.o b j e c t.online[ll_row]=1
end if
end if
end if
不足之处请大家指正,完。
if li_FileNum>0 then
FileRead(li_FileNum,ls_temp)
FileClose(li_filenum)
FileDelete("temp\"+as_ip)
p=pos(ls_temp,'MAC Address = ')