PDA

View Full Version : IcmpSendEcho در سیستم 64 بیتی



asgarkz
سه شنبه 15 فروردین 1391, 19:50 عصر
با سلام
من روی سیستم 32 بیتی از تابع IcmpSendEcho استفاده کردم و مشکلی نداشتم ولی الان که ویندوز 64 بیتی نصب کردم، همون برنامه جواب نمیده. ظاهرا توی ساختار رکوردهای مورداستفاده در تابع IcmpSendEcho نوع بعضی از فیلدها باید عوض بشه.
از دوستان اگر کسی ساختار 64 بیتی رکوردهای IP_OPTION_INFORMATION و ICMP_ECHO_REPLY رو به زبان دلفی داره، ممنون میشم اینجا بذاره.
با تشکر

asgarkz
سه شنبه 15 فروردین 1391, 20:28 عصر
با سلام مجدد
ساختار رکوردهای IP_OPTION_INFORMATION و ICMP_ECHO_REPLY به زبان c به صورت زیر هست

typedef struct _IP_OPTION_INFORMATION32 { UCHAR Ttl; UCHAR Tos; UCHAR Flags; UCHAR OptionsSize; UCHAR * POINTER_32 OptionsData; } IP_OPTION_INFORMATION32, *PIP_OPTION_INFORMATION32;



typedef struct icmp_echo_reply32 { IPAddr Address; ULONG Status; ULONG RoundTripTime; USHORT DataSize; USHORT Reserved; VOID * POINTER_32 Data; struct ip_option_information32 Options; } ICMP_ECHO_REPLY32, *PICMP_ECHO_REPLY32;



لطفا اگر کسی این ساختارها رو به زبان دلفی داره، ممنون میشم اینجا بذاره.
با تشکر مجدد

Ananas
سه شنبه 15 فروردین 1391, 21:34 عصر
سلام.
تو فایل IpExport اینارو نوشته:


IP_OPTION_INFORMATION = record
Ttl: UCHAR; // Time To Live
Tos: UCHAR; // Type Of Service
Flags: UCHAR; // IP header flags
OptionsSize: UCHAR; // Size in bytes of options data
OptionsData: PUCHAR; // Pointer to options data
end;
{$EXTERNALSYM IP_OPTION_INFORMATION}
PIP_OPTION_INFORMATION = ^IP_OPTION_INFORMATION;
{$EXTERNALSYM PIP_OPTION_INFORMATION}
TIpOptionInformation = IP_OPTION_INFORMATION;
PIpOptionInformation = PIP_OPTION_INFORMATION;


ICMP_ECHO_REPLY = record
Address: IPAddr; // Replying address
Status: ULONG; // Reply IP_STATUS
RoundTripTime: ULONG; // RTT in milliseconds
DataSize: USHORT; // Reply data size in bytes
Reserved: USHORT; // Reserved for system use
Data: LPVOID; // Pointer to the reply data
Options: ip_option_information; // Reply options
end;
{$EXTERNALSYM ICMP_ECHO_REPLY}
PICMP_ECHO_REPLY = ^ICMP_ECHO_REPLY;
{$EXTERNALSYM PICMP_ECHO_REPLY}
TIcmpEchoReply = ICMP_ECHO_REPLY;
PIcmpEchoReply = PICMP_ECHO_REPLY;

asgarkz
پنج شنبه 17 فروردین 1391, 16:15 عصر
جواب نداد. در صورت امکان کل فایل IPExpert رو اگه دارید بذارید.