Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2010, 20:21   #1
draculito
Новичок
Джуниор
 
Регистрация: 14.11.2010
Сообщений: 2
По умолчанию winpcap вывод ip в консоль

Нужно вывести в консольку ip своей сетевухи пробовал следующим образом, но не получилось:

dev = pcap_lookupdev(errBuf);
pcap_lookupnet(dev, &net, &mask, errBuf);

по идеи адрес сетевухи записывается в переменную net, и туда действительно что то записывается, но при попытке вывода цифры с реальностью не совпадают.

делал вывод следующим образом:

in_addr DevAdr;

DevAdr.S_un.S_addr = net;

printf("net adr is: %s \n", inet_ntoa(DevAdr));

результат не соответствует действительности (
draculito вне форума Ответить с цитированием
Старый 14.11.2010, 21:07   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Посмотрите тут, может что и приглянется - это я когда-то давно писал:
P.S. тут некоторые объекты - это окна, типа m_HostName, m_Node и др.
Код:
// ==============Включения============
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently

#pragma once

#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif

#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN            // Exclude rarely-used stuff from Windows headers
#endif

#include "targetver.h"

#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS      // some CString constructors will be explicit

// turns off MFC's hiding of some common and often safely ignored warning messages
#define _AFX_ALL_WARNINGS

#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions


#include <afxdisp.h>        // MFC Automation classes



#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h>           // MFC support for Internet Explorer 4 Common Controls
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>                     // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT









#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 14.11.2010, 21:07   #3
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Сам код:
Код:
PFIXED_INFO pFixedInfo;
	ULONG iFixedInfo(0);

	PIP_ADAPTER_INFO pAdapterInfo, pAdapter;
	ULONG iAdapterInfo;
	PIP_ADDR_STRING chAddr;
	CString aStr;
	TCHAR lpszText[1024];
	int iErr;

	if(iErr = GetNetworkParams(NULL, &iFixedInfo))
	{
		if(iErr != ERROR_BUFFER_OVERFLOW)
		{
			AfxMessageBox("GetNetworkParams failed");
			return;
		}
	}

	if((pFixedInfo = (PFIXED_INFO)GlobalAlloc(GPTR, iFixedInfo)) == NULL)
	{
		AfxMessageBox("Memory allocation error");
		return;
	}

	if(GetNetworkParams(pFixedInfo, &iFixedInfo))
	{
		AfxMessageBox("GetNetworkParams failed");
		return;
	}

	m_HostName.SetWindowText(pFixedInfo->HostName);
	CString str = pFixedInfo->DnsServerList.IpAddress.String;
	chAddr = pFixedInfo->DnsServerList.Next;
	while(chAddr)
	{
		str = str + " " + chAddr->IpAddress.String;
		chAddr = chAddr->Next;
	}
	m_DNSServer.SetWindowText(str);

	switch(pFixedInfo->NodeType)
	{
	case 1:
		m_Node.SetWindowText("Broadcast");
		break;
	case 2:
		m_Node.SetWindowText("Peer to peer");
		break;
	case 4:
		m_Node.SetWindowText("Mixed");
		break;
	case 8:
		m_Node.SetWindowText("Hybrid");
		break;
	default:
		m_Node.SetWindowText("Don't know");
	}

	m_IPRouting.SetWindowText(pFixedInfo->EnableRouting ? "Enabled" : "Disabled");
	m_WINSProxy.SetWindowText(pFixedInfo->EnableProxy ? "Enabled" : "Disabled");

	iAdapterInfo = 0;
	iErr = GetAdaptersInfo(NULL, &iAdapterInfo);
	if(iErr && (iErr != ERROR_BUFFER_OVERFLOW))
	{
		AfxMessageBox("GetAdaptersInfo failed");
		return;
	}
	
	if(!(pAdapterInfo = (PIP_ADAPTER_INFO)GlobalAlloc(GPTR, iAdapterInfo)))
	{
		AfxMessageBox("Memory allocatiom error");
		return;
	}

	if(GetAdaptersInfo(pAdapterInfo, &iAdapterInfo))
	{
		AfxMessageBox("GetAdaptersInfo failed");
		return;
	}

	pAdapter = pAdapterInfo;
	m_List.AddString("=======================================");
	while(pAdapter)
	{
		switch(pAdapter->Type)
		{
		case MIB_IF_TYPE_ETHERNET:
			aStr = "Ethernet adapter: ";
			break;
		case MIB_IF_TYPE_PPP:
			aStr = "PPP adapter: ";
			break;
		case MIB_IF_TYPE_LOOPBACK:
			aStr = "Loopback adapter: ";
			break;
		case MIB_IF_TYPE_TOKENRING:
			aStr = "Token Ring adapter: ";
			break;
		case MIB_IF_TYPE_FDDI:
			aStr = "FDDI adapter: ";
			break;
		case MIB_IF_TYPE_SLIP:
			aStr = "Slip adapter: ";
			break;
		case MIB_IF_TYPE_OTHER:
		default:
			aStr = "Other adapter: ";
		}
		
		m_List.AddString(aStr + pAdapter->AdapterName);
		aStr = "Description: ";
		m_List.AddString(aStr + pAdapter->Description);
		aStr = "Physical Address: ";
		for(UINT i=0; i<pAdapter->AddressLength; i++)
		{
			if(i == (pAdapter->AddressLength-1))
				sprintf(lpszText, "%.2X", (int)pAdapter->Address[i]);
			else
				sprintf(lpszText, "%.2X", (int)pAdapter->Address[i]);
			aStr += lpszText;
		}
		
		m_List.AddString(aStr);
		sprintf(lpszText, "DHCP Enabled: %s", (pAdapter->DhcpEnabled ? "yes" : "no"));
		m_List.AddString(lpszText);

		chAddr = &(pAdapter->IpAddressList);
		while(chAddr)
		{
			aStr = "Ip Address: ";
			m_List.AddString(aStr + chAddr->IpAddress.String);
			aStr = "Subnet Mask: ";
			m_List.AddString(aStr + chAddr->IpMask.String);
			chAddr = chAddr->Next;
		}
		
		aStr = "Default Gateway: ";
		m_List.AddString(aStr + pAdapter->GatewayList.IpAddress.String);
		chAddr = pAdapter->GatewayList.Next;

		while(chAddr)
			chAddr = chAddr->Next;

		aStr = "DHCP Server: ";
		m_List.AddString(aStr + pAdapter->DhcpServer.IpAddress.String);

		aStr = "Primary WINS Server: ";
		m_List.AddString(aStr + pAdapter->PrimaryWinsServer.IpAddress.String);

		aStr = "Secondary WINS Server: ";
		m_List.AddString(aStr = pAdapter->SecondaryWinsServer.IpAddress.String);
		
		m_List.AddString("========================================");
		pAdapter = pAdapter->Next;
	}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 14.11.2010, 21:38   #4
draculito
Новичок
Джуниор
 
Регистрация: 14.11.2010
Сообщений: 2
По умолчанию

Спасибо за ответ. Вроде как помогло. Изучаю код. )

Последний раз редактировалось draculito; 14.11.2010 в 21:54.
draculito вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод русских символов в консоль fs444 Общие вопросы C/C++ 10 23.02.2016 10:29
Вывод символа в консоль по десятичному скан-коду Alex1991 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 14.11.2010 20:37
параллельный вывод в консоль линукс arcer Общие вопросы C/C++ 6 09.11.2010 22:20
Вывод матрицы в файл и на консоль С++ sir.andrey Помощь студентам 2 21.10.2010 13:38
Вывод времени в консоль. BlincAttack Общие вопросы .NET 2 06.10.2009 14:57