如何得到已连接的计算机的名称(已知IP地址)...???(200分)

  • 主题发起人 主题发起人 sds
  • 开始时间 开始时间
S

sds

Unregistered / Unconfirmed
GUEST, unregistred user!
已知条件:本地IP地址,已连接的计算机的IP地址,双方的连接使用的端口号:
1.如何通过编程得到已连接的计算机的名称;
2.如何通过编程立即上传文件,并可运行可执行的文件;
3.如何通过编程立即中断连接;
 
什么都不用,用一个BO就可以了.....呵呵,搞笑,别听我的.
 
通过ip地址也可以做到以上功能呀。
 
通过ClientSocket和ServerSocket组件。
1.通过GetHostName可以得到本机的名字,用ClientSocket向ServerSocket发
一个请求具体发什么自已定如发一字符串'GetName'。ServerSocket收到此
字符后调用GetHostName然后将得到的名字再发给Client。
2.可以通过TMemoryStream将文件读入内存中再用SendStream发给ServerSocket
Server接收到后再存成文件,然后用ShellExecute执行该文件。注意一次发得
不要太大如果文件过大可以分成几次传送。
3.将任何一个组件的Active设为False即可.
 
对于1,可行
2:本人觉得不可能(除非hack),你不可能让另一台机器运行它上面的程序
3:可行

 
NetSpy谁用过?
别人通过网络(包括internet)可以在我的机器上执行我的程序!!
 
gethostbyaddr

The Windows Sockets gethostbyaddr function retrieves the host information corresponding to a network address.

struct HOSTENT FAR * gethostbyaddr(
const char FAR *addr,
int len,
int type
);

Parameters
addr
[in] A pointer to an address in network byte order.
len
[in] The length of the address.
type
[in] The type of the address.
Return Values
If no error occurs, gethostbyaddr returns a pointer to the HOSTENT structure. Otherwise, it returns a NULL pointer, and a specific error code can be retrieved by calling WSAGetLastError.

HOSTENT
Windows Sockets allocates the HOSTENT structure. An application should never attempt to modify this structure or to free any of its components. Furthermore, only one copy of this structure is allocated per thread, and so the application should copy any information that it needs before issuing any other Windows Sockets API calls.

struct hostent {
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list;
};

Members
h_name
Official name of the host (PC).If using the DNS or similar resolution system, it is the Fully Qualified Domain Name (FQDN) that caused the server to return a reply. If using a local hosts file, it is the first entry after the IP address.

h_aliases
A NULL-terminated array of alternate names.

h_addrtype
The type of address being returned.

h_length
The length, in bytes, of each address.
h_addr_list
A NULL-terminated list of addresses for the host. Addresses are returned in network byte order. The macro h_addr is defined to be h_addr_list[0] for compatibility with older software.
 
好象要用到向DNS查询的功能哦!
DELPHI如何向DNS查询名字,哪个大侠知道请
不吝赐教!
 
1>使用windows函数gethostbyaddr,xWolf老兄已经说得很明白,会自动搜索dns,但
速度会很慢.
2>运行程序和传输数据要设计通讯协议,要求本地执行应用程序,调用winexec(),至于
通讯要注意大文件的分割,具体请看其他的帖子.
3>自己建立的连接可以在程序中断开连接,使用socket的函数即可,如果是其他程序的
连接就不好办,我只知道可以杀掉连接程序的线程.
 
编一个客户端程序和一个服务端程序,利用DCOM和GETCOMPUTERNAME()函数,传回
来,我就是这么干的!
 
用gethostbyaddr,如果你的是windows,会:
1、搜索自己的dns,(在internet上一般很少会有那个名字,如果该主机是别的域的,而且自己的dns没有记录到它)
2、通过nbt(TCP/IP 上的 NetBIOS)直接查询对方(如果对方也是windows,
而且也有nbt,就可以得到)
 
多人接受答案了。
 
后退
顶部