readme.txt 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628
  1. PingInfoView v3.20
  2. Copyright (c) 2008 - 2025 Nir Sofer
  3. Web site: https://www.nirsoft.net
  4. Description
  5. ===========
  6. PingInfoView is a small utility that allows you to easily ping multiple
  7. host names and IP addresses, and watch the result in one table. It
  8. automatically ping to all hosts every number of seconds that you specify,
  9. and displays the number of succeed and failed pings, as well as the
  10. average ping time. You can also save the ping result into text/html/xml
  11. file, or copy it to the clipboard.
  12. PingInfoView supports both ICMP pings and TCP pings.
  13. System Requirements
  14. ===================
  15. This utility works under Windows 2000, Windows XP, Windows Server 2003,
  16. Windows Server 2008, Windows Server 2012, Windows Server 2016, Windows
  17. Vista, Windows 7, Windows 8, Windows 10, and Windows 11. Older versions
  18. of Windows are not supported.
  19. Versions History
  20. ================
  21. * Version 3.20
  22. o Added 'Black Background' option (Under the View menu). When it's
  23. turned on, the main tables are displayed in black background and
  24. white text, instead of default system colors.
  25. o Added 'Mark Odd/Even Rows' option.
  26. * Version 3.15
  27. o Fixed bug from version 3.10 that caused improper parsing of IPv6
  28. addresses.
  29. o Custom context menu: You can now add your own menu items to the
  30. right-click context menu of the upper pane, by editing the
  31. configuration file (PingInfoView.cfg)
  32. o See the 'Custom Context Menu' section for more information.
  33. * Version 3.10
  34. o Added support for IPv6 TCP pings. You can specify host name (For
  35. example: www.google.com:80), or IPv6 address in the following format:
  36. [IPv6 Address]:Port.
  37. * Version 3.05
  38. o Added 'Source IPv4 Address' option. You can use this option if
  39. you have multiple network adapters and you want to send the ping from
  40. specific adapter.
  41. * Version 3.01
  42. o Fixed bug: when disabling one or more items, the ping interval
  43. was longer than the interval in the Ping Options window.
  44. * Version 3.00
  45. o Added support for IPv6 pings. In order to enable IPv6 pings you
  46. have to select the 'Allow IPv6 addresses' option.
  47. o Optionally, you can choose the source IPv6 address (It might be
  48. needed if you have multiple network adapters)
  49. o Be aware that TCP pings are not supported for IPv6 in this
  50. version.
  51. o When you specify host name and the 'Allow IPv6 addresses' option
  52. is selected, PingInfoView first tries to resolve the host name as
  53. IPv6 address, and if it fails, it resolves the host name as IPv4
  54. address.
  55. o Added option to change the sorting column from the menu (View ->
  56. Sort By).
  57. o Added 'Sort By' button to the toolbar.
  58. o Added 'Update Settings' button to the 'Ping Options' window,
  59. which allows you to change some ping settings (e.g. : number of
  60. seconds to wait between the pings, ping timeout, window title)
  61. without resetting all ping data. You can also update the description
  62. of existing items, add new items, or change the groups.
  63. o Added 'Copy Stuck Threads Report' (Under Help menu) for debugging
  64. stuck threads problem.
  65. o The status bar now shows the number of active ping threads, and
  66. the number of stuck threads in parenthesis.
  67. o Fixed bug with stuck threads that occurred when PingInfoView
  68. failed to resolve host name.
  69. * Version 2.30
  70. o Added 'High Resolution Ping Time' option (Under the Options
  71. menu). When it's turned on, PingInfoView displays the ping time in
  72. microsecond resolution (For example: 2.351 ).
  73. o Added 'Hide Disabled Items' option (Under the View menu).
  74. * Version 2.25
  75. o Added option to disable and enable the selected items. When an
  76. item is disabled, PingInfoView will not sent pings to this host until
  77. it's enabled.
  78. o Be aware that the disable status is not remembered if you exit
  79. from PingInfoView and then run it again.
  80. * Version 2.22
  81. o The number of items in a group is now displayed in the group
  82. title.
  83. * Version 2.21
  84. o Added 'Copy Clicked Cell' option to the right-click context menu,
  85. which copies to the clipboard the text of cell that you right-clicked
  86. with the mouse.
  87. * Version 2.20
  88. o When the 'Use IP-Host Description format' option is turned on,
  89. you can now specify group name for every group of computers.
  90. o When group name is specified, every group is displayed
  91. separately, and you can collapse and expand a group by
  92. double-clicking the group header.
  93. o Look at the 'Use IP-Host Description format' section for an
  94. example of using this new groups feature.
  95. o Added 'Skip the first address' and 'Skip the last address'
  96. options for IP addresses range in CIDR format.
  97. * Version 2.16
  98. o Fixed the 'Execute the following command on success ping (After
  99. previous failure)' option (Added in version 2.15) to work according
  100. to the 'Number of consecutive failed pings to trigger the failed
  101. command/sound alert' option. For example: if you set the 'Number of
  102. consecutive failed pings...' value to 3, and there are 2 failed pings
  103. and then a success ping, PingInfoView will not activate the success
  104. command.
  105. * Version 2.15
  106. o Added new option: 'Execute the following command on success ping
  107. (After previous failure)' (In 'Advanced Options' window).
  108. o Updated to work properly in high DPI mode.
  109. * Version 2.10
  110. o Added new lower pane mode: 'Add ping line for every change in
  111. ping status'. When you choose this mode, a new ping line is added to
  112. the lower pane only when there is a change in the ping status.
  113. o For example: if you have a sequence of 10 succeeded pings and
  114. then a sequence of 5 failed pings, you'll see 2 lines in the lower
  115. pane - one line for the 10 succeeded pings and one line for the 5
  116. failed pings.
  117. o The new 'Pings Count' column displays the number of
  118. failed/succeeded pings. The 'Sent On' column displays the time range
  119. of the succeeded/failed pings.
  120. * Version 2.05
  121. o Added 'Display Mode' option (Under the Options menu), which
  122. allows you to view only the hosts with succeeded pings or to view
  123. only the hosts with failed pings.
  124. o Added 'Add Header Line To CSV/Tab-Delimited File' option (Turned
  125. on by default).
  126. * Version 2.02
  127. o Added new column: 'Total Sent Pings'.
  128. * Version 2.01
  129. o Added 'Start As Hidden' option (Enabled only when 'Put Icon On
  130. Tray' option is on).
  131. o When both 'Start As Hidden' and 'Put Icon On Tray' options are
  132. turned on - PingInfoView starts to ping instantly when you run it
  133. without displaying the main window.
  134. * Version 2.00
  135. o Added support for TCP pings. You can now specify the host name or
  136. IP address with a port number (e.g: 192.168.0.100:80 192.168.1.10:443
  137. www.nirsoft.net:443 ) and PingInfoView will check the TCP connection
  138. in the specified port number instead of using ICMP pings.
  139. * Version 1.86
  140. o Added option to specify IP addresses range in CIDR format (e.g:
  141. 192.168.0.0/24)
  142. o Added option to choose another font (name and size) to display in
  143. the main window.
  144. * Version 1.85
  145. o Added IP options: Time To Live and Don't Fragment.
  146. * Version 1.82
  147. o Fixed to sort properly the 'Last Succeed On' and 'Last Failed On'
  148. columns.
  149. * Version 1.81
  150. o Fixed bug with resizing the 'Ping Options' window.
  151. * Version 1.80
  152. o Added new option: Beep On Succeeded Pings (After Failure).
  153. o Fixed bug: When the lower pane option was turned off,
  154. PingInfoView didn't add the pings to the log file.
  155. * Version 1.75
  156. o Added 'Resolve host name to IP address on every ping' option. If
  157. the IP address of the host you ping may change, you should turn on
  158. this option , so when the IP address is changed, PingInfoView will
  159. ping the new IP address.
  160. o Added new option in 'Advanced Options' window: 'Limit the total
  161. number of accumulated pings' (Default is 50000). If you run
  162. PingInfoView for long period of time, you should use this option.
  163. Otherwise, the accumuated ping result will consume a lot of memory,
  164. and eventually PingInfoView will respond very slowly or crash.
  165. o Added 'Window Title' field. The text you type here will appear in
  166. the title of the main window.
  167. * Version 1.70
  168. o Automatic export feature: You can now choose to generate a new
  169. filename on every session (When you close the program and then run it
  170. again) or on every save. You can also generate a filename with
  171. date/time (e.g: ping20170925112130.csv) instead of numeric counter.
  172. * Version 1.65
  173. o The 'Consecutive Failed Count' column now keeps the last value
  174. when pings are ok again.
  175. o Added 'Max Consecutive Failed Count' column which displays the
  176. maximum number of consecutive failed pings and 'Max Consecutive
  177. Failed Time' which displays the date/time that the maximum number of
  178. consecutive failed pings was detected.
  179. o Added 'Add only failed pings' option to the 'Lower Pane Mode' in
  180. 'Advanced Options' window.
  181. * Version 1.60
  182. o Added option to automatically export the current pings status to
  183. a file (csv/tab-delimited/html/xml) every xx seconds (In 'Advanced
  184. Options' window).
  185. o Added option to execute a command on ping failure.
  186. o Added option to specify the number of consecutive failed pings to
  187. trigger the sound/beep alert and the failed command executaion.
  188. o Added 'Consecutive Failed Count' column.
  189. * Version 1.55
  190. o Added option to choose the type of beep/sound to use when a ping
  191. fails (In 'Advanced Options' window).
  192. o Added option to add all ping results or only the failed pings
  193. into a comma-delimited or tab-delimited log file (In 'Advanced
  194. Options' window).
  195. o Added option to stop adding the ping results into the lower pane
  196. (In 'Advanced Options' window). It's recommended to use this option
  197. if you have large amount of pings, because the accumulation of ping
  198. results consumes a lot of memory and eventually causes PingInfoView
  199. to crash.
  200. o When 'Use IP-Host Description format' option is turned on,
  201. PingInfoView now adds the IP address even if it doesn't have a
  202. description.
  203. * Version 1.51
  204. o On IP-Host format, if you put '#' in the beginning of the line,
  205. PingInfoView will consider it as a remark line and ignore it.
  206. * Version 1.50
  207. o Added option to specify the ping size (The default is 32 bytes).
  208. o Added 'Order' column, which specifies the original order of
  209. hosts, as you typed in the 'Ping Options' window.
  210. * Version 1.45
  211. o Added option to control the maximum number of concurrent pings
  212. (In 'Advanced Options' window - F9). The default value is 500.
  213. o Fixed bug: PingInfoView failed to remember the last size/position
  214. of the main window if it was not located in the primary monitor.
  215. * Version 1.43
  216. o Fixed bug: When using PingInfoView from command-line,
  217. /IPHostDescFormat and some other command-line options failed to work
  218. properly.
  219. * Version 1.42
  220. o Fixed issue: When editing PingInfoView_hosts.txt with external
  221. editor that adds Byte order mark to the file, PingInfoView failed to
  222. handle the first host name.
  223. * Version 1.41
  224. o Added 'Sort On Every Update' option.
  225. * Version 1.40
  226. o Added 'Auto Scroll Lower Pane' option.
  227. o Fixed bug: In some circumstances, when using 'Copy Selected
  228. Items' on the lower pane, PingInfoView copied the wrong items or
  229. crashed.
  230. o Improved the ability of PingInfoView to handle hundreds or
  231. thousants of IP addresses in the same time.
  232. * Version 1.36
  233. o Added 'Auto Size Columns+Headers' option, which allows you to
  234. automatically resize the columns according to the row values and
  235. column headers.
  236. o Fixed issue: The properties and the options windows opened in the
  237. wrong monitor, on multi-monitors system.
  238. * Version 1.35
  239. o Added a lower pane that lists the result of all pings for the
  240. selected IP address in the upper pane. (You can disable this feature
  241. by unchecking the 'Show Lower Pane' option under the Options menu)
  242. * Version 1.30
  243. o PingInfoView now resolves the IP addresses and displays the
  244. result under the 'Host Name' column.
  245. o Added 'Minimum Ping Time' and 'Maximum Ping Time' columns.
  246. * Version 1.28
  247. o Fixed the sorting problem of 'IP Address' and 'Reply IP Address'
  248. column.
  249. * Version 1.27
  250. o Made another workaround that hopefully will solve the mysterious
  251. problem that people report where PingInfoView stop pinging after
  252. hours of continuous work. PingInfoView now check the pinging status,
  253. and if the pings stoped from some reason, PingInfoView should start
  254. them again.
  255. * Version 1.26
  256. o Added command-line options to make a single ping test and save it
  257. to html/text/xml/csv file.
  258. o Fixed some problems with the xml file.
  259. * Version 1.25
  260. o New column: Last Succeed On.
  261. o New column: Last Failed On.
  262. o The % Failed value now shows the value in accuracy of 0.01%
  263. instead of interger values in previous versions.
  264. * Version 1.20
  265. o New column: % Failed.
  266. o New option: Beep On Failed Pings.
  267. o New option: Put Icon On Tray.
  268. * Version 1.18
  269. o Fixed bug: The size of addresses list text-box was limited to 32
  270. KB.
  271. * Version 1.17
  272. o Added new option: Start pinging immediately without displaying
  273. this dialog-box.
  274. * Version 1.16
  275. o Added more accelerator keys.
  276. * Version 1.15
  277. o Added support for IP Range (For example:
  278. 192.168.0.10-192.168.0.20)
  279. o Added support for IP-Host Description format. (See below)
  280. o Fixed bug: PingInfoView continued to ping even when 'Ping
  281. every...' option is unchecked.
  282. * Version 1.10
  283. o Added command-line support.
  284. o Added 'Always On Top' option.
  285. o Added Drag & Drop support - You can drag a text file containing
  286. IP addresses into the main window of PingInfoView.
  287. o Added 'Start Pinging' option. (Start again after you previously
  288. used the Stop option)
  289. o Added 'Reset' option.
  290. o Added 'Load Addresses From File' option.
  291. * Version 1.06
  292. o Fixed sorting problems in some columns.
  293. * Version 1.05
  294. o Automatically save the hosts list and load it in the next time
  295. that you use PingInfoView utility.
  296. o Fixed the IP address sorting.
  297. o The 'Ping Options' dialog-box is now resizable.
  298. * Version 1.01 - Fixed bug: The main window lost the focus when the
  299. user switched to another application and then returned back to
  300. PingInfoView.
  301. * Version 1.00 - First release.
  302. Using PingInfoView
  303. ==================
  304. PingInfoView doesn't require any installation process or additional dll
  305. files. In order to start using it, simply run the executable file
  306. (PingInfoView.exe), type the host names and IP addresses that you want to
  307. ping, and click the 'Ok' button to start pinging.
  308. Starting from version 2.00, you can also specify a TCP port number (e.g:
  309. 192.168.0.100:80 192.168.1.10:443 ) in order to test a TCP connection
  310. (TCP Ping) instead of using ICMP pings. Be aware that PingInfoView only
  311. tests the TCP connection itself, it doesn't try to send or receive data
  312. from the server.
  313. Known Issues
  314. ============
  315. * If you ping to a lot of hosts concurrently, PingInfoView may return a
  316. failed result to some of the hosts, even if the hosts are ok. In order
  317. to solve this issue, go to the 'Advanced Options' and decrease the
  318. maximum number of concurrent pings.
  319. Use IP-Host Description format
  320. ==============================
  321. When this option is selected, you should specify the IP addresses list in
  322. the following format:
  323. 192.168.1.10 Main Server
  324. 192.168.1.11 Host 01
  325. 192.168.1.12 Host 02
  326. 192.168.1.30:443 HTTPS Web Site
  327. 192.168.1.31:25 SMTP Server
  328. #192.168.1.14 Host 03
  329. The description of each IP address is automatically added to the
  330. description column. When port number is specified, TCP ping is used
  331. instead of ICMP ping. If you add '#' character in the beginning of the
  332. line, PingInfoView will ignore it.
  333. Starting from version 2.20, You can also specify group name for every
  334. group of computers. When group name is specified, every group is
  335. displayed separately, and you can collapse and expand a group by
  336. double-clicking the group header.
  337. Here's an example for IP addresses list with group names:
  338. Group: Computers Group 1
  339. 192.168.0.1 Computer01
  340. 192.168.0.2 Computer02
  341. 192.168.0.3 Computer03
  342. Group: Computers Group 2
  343. 192.168.0.10 Computer10
  344. 192.168.0.11 Computer11
  345. 192.168.0.12 Computer12
  346. Command-Line Options
  347. ====================
  348. /stext <Filename>
  349. Make a single ping test and save the result into a simple text file.
  350. /stab <Filename>
  351. Make a single ping test and save the result into a tab-delimited text
  352. file.
  353. /scomma <Filename>
  354. Make a single ping test and save the result into a comma-delimited text
  355. file (csv).
  356. /stabular <Filename>
  357. Make a single ping test and save the result into a tabular text file.
  358. /shtml <Filename>
  359. Make a single ping test and save the result into HTML file (Horizontal).
  360. /sverhtml <Filename>
  361. Make a single ping test and save the result into HTML file (Vertical).
  362. /sxml <Filename>
  363. Make a single ping test and save the result into XML file.
  364. /loadfile <filename>
  365. Load the specified filename that contains host names and/or IP addresses.
  366. You can use this command-line option in conjunction with the above save
  367. commands (/scomm, /stab, and so on)
  368. /PingTimeout <value>
  369. Specifies the ping timeout value, in ms.
  370. /PingEvery <0 | 1>
  371. Specifies whether to ping every xx seconds (0 - No, 1 - Yes)
  372. /PingEverySeconds <value>
  373. Specifies the number of seconds to wait between the pings.
  374. /IPHostDescFormat <0 | 1>
  375. Specifies whether to use the IP-Host Description mode (0 - No, 1 - Yes)
  376. /StartPingImmediately <0 | 1>
  377. Specifies whether to start pinging immediately without displaying the
  378. Ping Options window. (0 - No, 1 - Yes)
  379. /IPv6 <0 | 1>
  380. /IPv6SourceAddress <IPv6 Source Address>
  381. /PingTimeout <Milliseconds>
  382. /ResolveEveryPing <0 | 1>
  383. /WindowTitle <Window Title>
  384. /ResolveAddresses <0 | 1>
  385. /PingSize <Ping Size>
  386. /MaxConcurrentPings <Value>
  387. .
  388. .
  389. .
  390. You can use any variable inside the configuration file (PingInfoView.cfg)
  391. as command-line option to set the desired option from command-line.
  392. Custom Context Menu
  393. ===================
  394. Starting from version 3.15, you can add your own custom menu items into
  395. the upper pane context menu of PingInfoView.
  396. In order to do this, you have to exit completely from PingInfoView and
  397. then edit the PingInfoView.cfg file, located in the same folder of
  398. PingInfoView.exe. You can edit PingInfoView.cfg with notepad or any other
  399. text editor.
  400. The structure of the custom menu configuration is very simple, and looks
  401. like this:
  402. [CustomMenu]
  403. Caption0=Menu Caption
  404. Command0=Menu Command
  405. Caption1=Menu Caption
  406. Command1=Menu Command
  407. Caption2=Menu Caption
  408. Command2=Menu Command
  409. .
  410. .
  411. .
  412. You can create up to 10 different menu items (from 0 to 9). The command
  413. string is an executable file with parameters that provide the information
  414. about the selected items.
  415. For example, the following menu item will ping the selected IP address in
  416. a command-prompt window:
  417. [CustomMenu]
  418. Caption0=Ping This IP address
  419. Command0=cmd.exe /K ping %IPAddress%
  420. PingInfoView will replace the %IPAddress% variable with the IP address of
  421. the selected item. You can use the following variables for the custom
  422. menu command (They are identical to the column names, but without the
  423. space characters): %HostName% %IPAddress% %ReplyIPAddress% %SucceedCount%
  424. %FailedCount% %ConsecutiveFailedCount% %MaxConsecutiveFailedCount%
  425. %MaxConsecutiveFailedTime% %PercentFailed% %TotalSentPings%
  426. %LastPingStatus% %LastPingTime% %LastPingTTL% %AveragePingTime%
  427. %Description% %LastSucceedOn% %LastFailedOn% %MinimumPingTime%
  428. %MaximumPingTime% %Order% %Disabled%
  429. Finally, here's an example for full custom menu items. Notice that
  430. Caption3 and Caption6 are actually a menu separator. Also, Command7 is a
  431. 'ShellExecute' command, which means that instead of specifying .exe file,
  432. you specify a file, URL, or network resource to open (In this case it's
  433. Admin share of the remote computer).
  434. [CustomMenu]
  435. Caption0=Ping IP address
  436. Command0=cmd.exe /K ping %IPAddress%
  437. Caption1=Ping Host Name
  438. Command1=cmd.exe /K ping %HostName%
  439. Caption2=Check IP Address With Nbtstat
  440. Command2=cmd.exe /K nbtstat.exe -A %IPAddress%
  441. Caption3=-
  442. Caption4=Open IP Address In Chrome
  443. Command4=chrome.exe %IPAddress%
  444. Caption5=Open IP Address In Firefox
  445. Command5=Firefox.exe %IPAddress%
  446. Caption6=-
  447. Caption7=Open Admin Share
  448. Command7=ShellExecute:\\%IPAddress%\Admin$
  449. The custom menu of the above example looks like this:
  450. Translating PingInfoView to other languages
  451. ===========================================
  452. In order to translate PingInfoView to other language, follow the
  453. instructions below:
  454. 1. Run PingInfoView with /savelangfile parameter:
  455. PingInfoView.exe /savelangfile
  456. A file named PingInfoView_lng.ini will be created in the folder of
  457. PingInfoView utility.
  458. 2. Open the created language file in Notepad or in any other text
  459. editor.
  460. 3. Translate all string entries to the desired language. Optionally,
  461. you can also add your name and/or a link to your Web site.
  462. (TranslatorName and TranslatorURL values) If you add this information,
  463. it'll be used in the 'About' window.
  464. 4. After you finish the translation, Run PingInfoView, and all
  465. translated strings will be loaded from the language file.
  466. If you want to run PingInfoView without the translation, simply rename
  467. the language file, or move it to another folder.
  468. License
  469. =======
  470. This utility is released as freeware. You are allowed to freely
  471. distribute this utility via floppy disk, CD-ROM, Internet, or in any
  472. other way, as long as you don't charge anything for this. If you
  473. distribute this utility, you must include all files in the distribution
  474. package, without any modification !
  475. Disclaimer
  476. ==========
  477. The software is provided "AS IS" without any warranty, either expressed
  478. or implied, including, but not limited to, the implied warranties of
  479. merchantability and fitness for a particular purpose. The author will not
  480. be liable for any special, incidental, consequential or indirect damages
  481. due to loss of data or any other reason.
  482. Feedback
  483. ========
  484. If you have any problem, suggestion, comment, or you found a bug in my
  485. utility, you can send a message to nirsofer@yahoo.com