HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
1111
イナウサDNSサーバーのプログラム3未解決


イナウサ

リンク

2018/11/11(Sun) 11:19:25|NO.85810

こんにちは。
ローカルhttpサーバーが大体できたのでローカルDNSサーバーの製作を始めました。
最終的にはこのローカルDNSサーバーとローカルhttpサーバーを連携して動作させる
ことを目標にしております。
クライアント端末およびwifiルータのDNSの設定では
ローカルDNSサーバーのipアドレスを指定しております。
以下のプログラムはクライアント端末がローカルDNSサーバーにアクセスした際の
ログが取れるようになっているだけのものです。
しかし、クライアント端末でテキトーなドメインを入力してもこのログには何の変化もありません。
DNSサーバーの仕組みを分かりきっていないため、使い方が間違っていたり、
プログラム的に間違っていたら教えて下さい。もちろんクライアント端末は他のネットワークには
繋がってはいません。

#include "hspsock.as" #define Soket_ID 0 #define Port_NUM 53 ipget:title refstr sdim data,500 *main sockmake Soket_ID, Port_NUM repeat sockwait Soket_ID if(stat==0):break await:loop repeat sockcheck Soket_ID if(stat==0):break await:loop sockget data, 500, Soket_ID if(stat!=0):mes "エラー" mes data sockclose Soket_ID await 3000 cls 0 goto*main
よろしくお願いします。



この記事に返信する


エイ(ド)リアン

リンク

2018/11/11(Sun) 11:46:14|NO.85811

DNSは(基本的)にUDPを使用するので、hspsockだとTCPしか取り扱えなかったはず。
無理ではないかと。



イナウサ

リンク

2018/11/13(Tue) 21:49:03|NO.85820

>>DNSは(基本的)にUDPを使用するので

UDPが使えるpcbnet2を使って書いてみました。


#include"pcbnet2.as" #define port 53 *main udpsock socket,port repeat udpcheck a,socket if(a!=0):break await:loop buf="" udpget buf,64,socket mes "受信サイズ"+stat+",受信データ"+buf+"" udpclose socket i++ if(i=20):cls 0:i=0 goto*main

受信サイズが30バイト以上あるのに対して、受信されたデータは2文字分しかありません。
どなたか受信データすべてを表示する方法を教えてください。



zakki

リンク

2018/11/14(Wed) 12:59:41|NO.85823

テキストベースのプロトコルではないのでRFC見ながら自分でバイト列をパースするしかないのでは。



ONION software Copyright 1997-2021(c) All rights reserved.