vb中从域名得到ip及从ip得到域名Getting IP from domain name and getting domain name from IP in VB.docx

上传人:b****6 文档编号:7069983 上传时间:2023-01-16 格式:DOCX 页数:6 大小:15.72KB
下载 相关 举报
vb中从域名得到ip及从ip得到域名Getting IP from domain name and getting domain name from IP in VB.docx_第1页
第1页 / 共6页
vb中从域名得到ip及从ip得到域名Getting IP from domain name and getting domain name from IP in VB.docx_第2页
第2页 / 共6页
vb中从域名得到ip及从ip得到域名Getting IP from domain name and getting domain name from IP in VB.docx_第3页
第3页 / 共6页
vb中从域名得到ip及从ip得到域名Getting IP from domain name and getting domain name from IP in VB.docx_第4页
第4页 / 共6页
vb中从域名得到ip及从ip得到域名Getting IP from domain name and getting domain name from IP in VB.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

vb中从域名得到ip及从ip得到域名Getting IP from domain name and getting domain name from IP in VB.docx

《vb中从域名得到ip及从ip得到域名Getting IP from domain name and getting domain name from IP in VB.docx》由会员分享,可在线阅读,更多相关《vb中从域名得到ip及从ip得到域名Getting IP from domain name and getting domain name from IP in VB.docx(6页珍藏版)》请在冰豆网上搜索。

vb中从域名得到ip及从ip得到域名Getting IP from domain name and getting domain name from IP in VB.docx

vb中从域名得到ip及从ip得到域名GettingIPfromdomainnameandgettingdomainnamefromIPinVB

vb中从域名得到ip及从ip得到域名(GettingIPfromdomainnameandgettingdomainnamefromIPinVB)

privateconstws_version_reqd=&h101

privateconstws_version_major=ws_version_reqd\&h100and&hff&

privateconstws_version_minor=ws_version_reqdand&hff&

privateconstmin_sockets_reqd=1

privateconstsocket_error=-1

privateconstwsadescription_len=256

privateconstwsasys_status_len=128

privatetypehostent

hnameaslong

haliasesaslong

haddrtypeasinteger

hlengthasinteger

haddrlistaslong

endtype

privatetypewsadata

wversionasinteger

whighversionasinteger

szdescription(0towsadescription_len)asbyte

szsystemstatus(0towsasys_status_len)asbyte

imaxsocketsasinteger

imaxudpdgasinteger

lpszvendorinfoaslong

endtype

privatedeclarefunctiongethostbyaddrlib"wsock32.dll(addrasany,byval_

byteslenasinteger,addrtypeasinteger)aslong

privatedeclarefunctionwsagetlasterrorlib"wsock32.dll"()aslong

privatedeclarefunctionwsastartuplib"wsock32.dll"(byval_

wversionrequired&,lpwsadataaswsadata)aslong

privatedeclarefunctionwsacleanuplib"wsock32.dll"()aslong

privatedeclarefunctiongethostbynamelib"wsock32.dll"(byval_

hostname$)aslong

privatedeclaresubrtlmovememorylib"kernel32"(hpvdestasany,_

byvalhpvsource&,byvalcbcopy&)

functionhibyte(byvalwparamasinteger)注释:

获得整数的高位

hibyte=wparam\&h100and&hff&

endfunction

functionlobyte(byvalwparamasinteger)注释:

获得整数的低位

lobyte=wparamand&hff&

endfunction

functionsocketsinitialize()

dimwsadaswsadata

ireturnasintegerdim

dimslowbyteasstring,shighbyteasstring,smsgasstring

ireturn=wsastartup(ws_version_reqd,wsad)

ifireturn<>0then

msgbox"winsock.dll没有反应."

end

endif

iflobyte(wsad.wversion)

shighbyte=trim$(str$(hibyte(wsad.wversion)))

slowbyte=trim$(str$(lobyte(wsad.wversion)))

smsg="windowssockets版本"&slowbyte&":

"&shighbyte

smsg=smsg&"不被winsock.dll支持"

msgboxsmsg

end

endif

ifwsad.imaxsockets

smsg="这个系统需要的最少sockets数为"

smsg=smsg&trim$(str$(min_sockets_reqd))

msgboxsmsg

end

endif

endfunction

subsocketscleanup()

昏暗的lreturn长

lreturn=wsacleanup()

如果lreturn<>0

本插座错误”和装饰(STR美元美元(lreturn))&”发生在清理”

终点

最后如果

端子

子form_load()

注释:

初始化插座

socketsinitialize

端子

私有子form_unload(取消为整数)

注释:

清除插座

socketscleanup

端子

私有函数getip(名称为字符串)字符串

昏暗的hostent_addr长

昏暗的主机hostent

昏暗的hostip_addr长

昏暗的temp_ip_address()字节

模糊i为整数

昏暗的ip_address作为字符串

hostent_addr=gethostbyname(名称)

如果hostent_addr=0

getip=“注释:

主机名不能被解释

退出功能

最后如果

rtlmovememory主机,hostent_addr,LenB(主持人)

rtlmovememoryhostip_addr,host.haddrlist,4

ReDimtemp_ip_address(1主机。

hlength)

rtlmovememorytemp_ip_address

(1),hostip_addr,host.hlength

我host.hlength=1

ip_address=ip_address和temp_ip_address(我)和“。

下一个

ip_address=美元中期(ip_address,1,Len(ip_address)-1)

getip=ip_address

端功能

私有子command1_click()

将字符串作为字符串

STR=getip(text1文本)

如果“=”

正文文本=“主机名不能被解释”。

其他的

正文文本=str。

最后如果

端子

私有函数getName(addrstr字符串)字符串

昏暗的hostent_addr长

昏暗的主机hostent

昏暗的地址(0至50)字节

昏暗的地址字符串

昏暗的hname(1至50)字节

将字符串作为字符串

模糊i为整数,j为整数

昏暗的temp_int为整数

昏暗的BYT字节

STR=装饰$(addrstr)

我=0

J=0

temp_int=0

i=i+1

当中间$(STR,i,1)>“0”和中间$(STR,i,1)<=“9”和i=莱恩(STR)时执行

temp_int=temp_int*10+美元中期(STR,我,1)

i=i+1

如果temp_int<=255

地址(j)=temp_int

j=j+1

最后如果

循环直到中旬$(STR,I,1)<>”。

“我>len(str)或temp_int>255

如果temp_int>255

getName=“地址非法”

退出功能

最后如果

hostent_addr=gethostbyaddr(ADDR(0),J,2)

如果hostent_addr=0

getName=“此地址无法解析”

退出功能

最后如果

rtlmovememory主机,hostent_addr,LenB(主持人)

RtlMoveMemoryhname

(1),host.hname,50

J=51

对于我=1比50

如果hname(我)=0

J=我

最后如果

如果我

hname(我)=32

最后如果

下一个我

getName=装饰$(StrConv(hname,vbunicode))

端功能

私有子command2_click()

将名称设为字符串

名称=getName(中文本)

如果名称“”然后

名称=“此地址没有域名”

最后如果

Text文本=名称。

端子

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1