Michael II 0 Posted 5 hours ago (edited) Hello Angus, I have installed ICS 9.4 (Windows, Delphi 11), and now I am encountering a range check error in my project with "async ping." After some testing in OverbyteIcsIcmp.pas, I came across your note: "Note Async ping still does not work, not looked into it yet, use threaded ping instead." The range check error occurs inOverbyteIcsIcmp.pas in the following line: FSrcIPAddr := WSocketStrToIPv4(FSrcAddress, flag); Reason: If FSrcAddress = '', then WSocketStrToIPv4 sets the result to $ffffffff. The result type of WSocketStrToIPv4 is TIcsIPv4Address (found in OverbyteIcsTypes.pas): TIcsIPv4Address = LongWord; // V9.4 {x$IFDEF POSIX} Cardinal {.$ELSE} Integer {.$ENDIF}; However, FSrcIPAddr is of type LongInt. Edited 5 hours ago by Michael II Share this post Link to post
Angus Robertson 650 Posted 4 hours ago This is fixed in SVN and the overnight zip, took a while to find all the horrible LongInt casts being used to handle unsigned 32-bit IPv4s. Mar 04, 2025 V9.5 Using TIcsIPv4Address instead of TIPAddr (longint) to avoid range errors. You should be able to just use the new ICMP unit with V9.4. Angus Share this post Link to post
Michael II 0 Posted 3 hours ago Hello Angus, Thank you very much for your super-fast response. Sorry for not thinking to check whether you had already fixed it. (Over the past few years, I’ve become a rather lazy Delphi > GetIt user...) I followed your tip, downloaded your latestOverByteICSPing.pas from SVN, and copied it into 9.4. It works! Thanks for all your work. Best regards, Michael Share this post Link to post