Форум программистов, компьютерный форум CyberForum.ru

Как узнать откуда интернет пакет? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поразрядные операторы,операторы сдвига http://www.cyberforum.ru/cpp-beginners/thread835336.html
#include<iostream> using namespace std; int bitcount(unsigned x) { int b; for(b=0;x!=0;x>>=1) if(x&01) b++; return b; }
C++ Метод Гаусса через единичную диагональ. Что не так? # include<stdio.h> #include <conio.h> #define N 2 // размерность int main () { int i, n, g, k; float A, a, b, c, d, e; // a & b - коэфф, с & d & e - для вычислений A=1; A=2; A=11; A=3; A=4; A=25; http://www.cyberforum.ru/cpp-beginners/thread835329.html
Восстановление задачи SystemRestore C++
Пропало всё в SystemRestore(пусто,ни одной задачи)! Не создаются автоматически точки восстановления, не могу изменить задачу (период появления точек). Захожу ветку Библиотека планировщика заданий\Microsoft\Windows\SystemRestore, далее пишет "выбранная задача"{0}" больше не существует". Пункта SR нет- триггера нет. Что делать не знаю. Помогите!!!
Вывести растояние от заданой точки к точке,которая делит высоту пополам C++
Дано координаты вершин паралелограма. Вывести растояние от заданой точки к точке,которая делит высоту пополам
C++ Массив: Вывести количество повторений числа "х" в столбике. http://www.cyberforum.ru/cpp-beginners/thread835300.html
Помогите функцию переделать, я написал, вроде и верно но чуть не то. Вобщем мне нужно что бы мне вывело количество повторений числа "х" в столбике. например масив 1 2 3 х 2 2 2 3 1 2 1 2 х 3 1 1 2 3 3 3 1 2 3 3 3 1 х 1 1 1 1 х 1 1 1
C++ new выделяет больше памяти, чем задано Здравия желаю!:) При запуске программы с кодом void main() { char *p; p=new char; cout<<strlen(p); _getch(); delete p; подробнее

Показать сообщение отдельно
StalkerSmerch
1 / 1 / 2
Регистрация: 04.03.2012
Сообщений: 159
11.04.2013, 22:57     Как узнать откуда интернет пакет?
Есть программа которая может узнать длину пакета, и время. Что мне нужно переделать чтобы узнавать больше информации о пакете?(например куда адресован пакет?)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <stdio.h>
#include <locale.h>
 
 
#include "pcap.h"
#include <remote-ext.h>
 
void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data);
 
int main()
{
pcap_if_t *alldevs;
pcap_if_t *d;
int inum;
int i=0;
pcap_t *adhandle;
char errbuf[PCAP_ERRBUF_SIZE];
    
    /* Retrieve the device list on the local machine */
    if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1)
    {
        fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf);
        exit(1);
    }
    
    /* Print the list */
    for(d=alldevs; d; d=d->next)
    {
        printf("%d. %s \n", ++i, d->description);
/*        if (d->description)
            printf(" (%s)\n", d->description);
        else
            printf(" (No description available)\n");*/
    }
    
    if(i==0)
    {
        printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
        return -1;
    }
    
    printf("Enter the interface number (1-%d):",i);
    scanf_s("%d", &inum);
    
    if(inum < 1 || inum > i)
    {
        printf("\nInterface number out of range.\n");
        /* Free the device list */
        pcap_freealldevs(alldevs);
        return -1;
    }
    
    /* Jump to the selected adapter */
    for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++);
    
    /* Open the device */
    if ( (adhandle= pcap_open(d->name,          // name of the device
                              65536,            // portion of the packet to capture
                                                // 65536 guarantees that the whole packet will be captured on all the link layers
                              PCAP_OPENFLAG_PROMISCUOUS,    // promiscuous mode
                              1000,             // read timeout
                              NULL,             // authentication on the remote machine
                              errbuf            // error buffer
                              ) ) == NULL)
    {
        fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", d->name);
        /* Free the device list */
        pcap_freealldevs(alldevs);
        return -1;
    }
    
    printf("\nlistening on %s...\n", d->description);
    
    /* At this point, we don't need any more the device list. Free it */
    pcap_freealldevs(alldevs);
    
    /* start the capture */
    pcap_loop(adhandle, 0, packet_handler, NULL);
    
    return 0;
}
 
 
/* Callback function invoked by libpcap for every incoming packet */
void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data)
{
    struct tm ltime;
    char timestr[16];
    time_t local_tv_sec;
 
    /*
     * unused variables
     */
    (VOID)(param);
    (VOID)(pkt_data);
 
    /* convert the timestamp to readable format */
    local_tv_sec = header->ts.tv_sec;
    localtime_s(&ltime, &local_tv_sec);
    strftime( timestr, sizeof timestr, "%H:%M:%S", &ltime);
    printf("%s\t%d\tlen=%d\n", timestr, header->ts.tv_usec, header->len);
    
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru