资源简介
解决了超时问题,并且使用select语句
代码片段和文件信息
#include
#include
#include
#include
#include
#pragma comment(lib“Ws2_32.lib“)x
using namespace std;
#define PORT 53
#define OUT_ADDRESS “192.168.1.1“//外部DNS服务器地址
class local_list
{
public:
string ip;
string domain_name;
};
class ID_transfer_table//ID转换表
{
public:
unsigned short old_ID;//旧ID
SOCKADDR_IN client;//请求者套接字地址
int finish;//是否完成解析
};
string yuming;//域名
ID_transfer_table ITT[500];//ID转换表
local_list *loc[500];
SYSTEMTIME sys;
string file_name;//本地DNStxt地址
int YearMonthDay Hour Minute Second Milliseconds;//保存系统时间的变量
int IDcount=0;
int Get_list(int t)//把dnsrelay载入结构local_list中
{
string s;
char* filename={0};
// cout<<“::“< //for(int i=0;i // filename[i]=file_name[i];
//cout< int n;
n=0;
loc[0]=new local_list;
ifstream local;
//filename=file_name;
if(t == 1)
{
//cout<<“**“< local.open(file_name.c_str());
}
else
local.open(“E:\dnsrelay.txt“);
if(!local)
{
cout<<“打开文件失败!“< }
while(!local.eof())
{
local>>s;
loc[n]->ip=s;
local>>s;
loc[n]->domain_name=s;
n++;
loc[n]=new local_list;
}
local.close();
return n-1;
}
int GetDomname(string rec_bufint Rec_f)
{
string s;
int ijn;
j=0;
yuming=““;
i=0;
s=rec_buf.substr(12Rec_f-16);
while(i {
if(s[i]>0&&s[i]<=63)
{
n=s[i];
i++;
while(n!=0)
{
yuming+=s[i];
j++;
i++;
n--;
}
}
if(s[i]!=0)
{
yuming+=‘.‘;
j++;
}
}
yuming+=‘\0‘;
return j;
}
string local_find(int num)
{
int i;
for(i=0;i {
if(strcmp(yuming.c_str()loc[i]->domain_name.c_str())==0)
{
if(loc[i]->ip==“0.0.0.0“)
{
return “0.0.0.0“;
}
else
{
return loc[i]->ip;
}
}
}
if(i==num)
{
return “notfind“;//中继
}
}
int main(int argc char** argv)
{
WSADATA wsaData;//初始化动态链接库用的,之后socket才能用
SOCKET SERVERHOST;//本地DNS和外部DNS两个套接字
SOCKADDR_IN s_nameh_namec_name;//本地DNS、外部DNS、请求端三网络套接字地址
char sen_buf[512];//发缓存
char rec_buf[512];//收缓存
string out_add;//外部DNS地址
int numj;
if(argc == 1)
{
cout<<“无调试信息输出“< out_add=OUT_ADDRESS;
num = Get_list(2);
}
else if(argc == 4)
{
cout<<“调试信息级别1“< out_add=argv[2];
file_name=argv[3];
cout< num = Get_list(1);
}
else if(argc == 3)
{
cout<<“调试信息级别2“< out_add=argv[2];
num = Get_list(2);
}
//
//
//初始化ID转换表
//
//
WSAStartup(MAKEWORD(22) &wsaData); //初始化ws2_32.dll动态链接库。第一个2表示副版本号,第二个号表示主版本号,第二个参数返回请求socket的版本信息
//创建套接字:
SERVER=socket(AF
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-05-30 19:46 dns\
目录 0 2015-05-30 19:39 dns\Debug\
文件 577593 2015-05-30 19:39 dns\Debug\dne.exe
文件 833664 2015-05-30 19:39 dns\Debug\dne.ilk
文件 320637 2015-05-30 19:39 dns\Debug\dne.obj
文件 5567096 2015-05-30 19:10 dns\Debug\dne.pch
文件 1139712 2015-05-30 19:39 dns\Debug\dne.pdb
文件 5176 2015-05-18 20:41 dns\Debug\dnsrelay.txt
文件 181248 2015-05-30 19:39 dns\Debug\vc60.idb
文件 143360 2015-05-30 19:39 dns\Debug\vc60.pdb
文件 11714 2015-05-30 19:39 dns\dne.cpp
文件 3365 2015-05-30 19:10 dns\dne.dsp
文件 514 2015-05-30 19:46 dns\dne.dsw
文件 41984 2015-05-30 19:46 dns\dne.ncb
文件 48640 2015-05-30 19:46 dns\dne.opt
文件 737 2015-05-30 19:39 dns\dne.plg
文件 5176 2015-05-18 20:41 dns\dnsrelay.txt
- 上一篇:机构分析与综合大作业-ADAMS建模仿真
- 下一篇:递归解决迷宫问题
相关资源
- 北邮计通网实验三DNS DHCP服务
- windows下的dig工具
- DNSCryptWin-v0.0.6
- IIS and DNS
- dnspy 反编译工具6.0版
- dnSpy反编译工具v3.0.2中文版(附教程)
- .Net 反汇编工具 dnSpy 6.0.5 中文版.zip
- DNS与BIND.pdf
- 北邮网工大三计算机网络课程设计D
- dnSpy反编译工具v3.0.2中文版(支持在线
- 史上最强的.net反编译器
- dnSpy是一款反编译软件
-
Z.Entityfr
amework.Extensions 破解需要的 - DNS与BIND第5版高清带书签目录完整版
- 实验报告5 DNS协议分析
- Wireshark抓包分析 DNS和HTTP协议.
- DNS速度测试 DNS Benchmark [免费版]
- DNS客户端源代码
- 服务发现系统SkyDNS.zip
- 从DNS的概念到发展到今天的成就
- apatedns工具
- 基于arduino的光电鼠标A3050数据读取
- 领克车机DNS服务器配置文件
- dns漏洞利用工具——dns溢出工具
- Windows 2003 DNS服务所需的i386目录文件包
- dns域名解析简单实现
- windows 2008 DNS 与 Linux 同步
- DNS协议解析源码程序
- 最简单方便的ROSDDNS动态域名脚本
- 利用Packet Tracer验证WWW、FTP、DNS、DHC
评论
共有 条评论