Re[5]: Как сменить мак в исходящем пакете?
От: _ks_  
Дата: 20.07.04 14:14
Оценка:
Здравствуйте, Kochuev, Вы писали:

K>Должен ли этот псевдо заголовок отправляться по сети? Нельзя ли примерчик, как считать эту контрольную сумму?


inline u_short in_cksum(u_short *addr, int len)
{
register int nleft = len;
register u_short *w = addr;
register int sum = 0;
u_short answer = 0;
while (nleft > 1) {
sum += *w++;
nleft -= 2;
}
if (nleft == 1) {
*(u_char *)(&answer) = *(u_char *) w;
sum += answer;
}
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
answer = ~sum;
return(answer);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.