internet 和局域网内怎样获得电脑唯一的 ip (200分)

  • 主题发起人 主题发起人 emitsong
  • 开始时间 开始时间
E

emitsong

Unregistered / Unconfirmed
GUEST, unregistred user!
internet 和局域网内怎样获得电脑唯一的 ip
如:用代理服务器出去的

这个问题主要是解决,udp的通讯
 
包括用dchp协议动态分配的地址
 
试试!

uses Winsock;

function getIPs: TStrings;
type
TaPInAddr = Array[0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
Buffer: Array[0..63] of Char;
I: Integer;
GInitData: TWSAData;
begin
WSAStartup($101, GInitData);
Result:=TStringList.Create;
Result.Clear;
GetHostName(Buffer, SizeOf(Buffer));
phe := GetHostByName(buffer);
if phe = nil then
begin
Exit;
end;
pPtr := PaPInAddr(phe^.h_addr_list);
I := 0;
while pPtr^ <> nil do
begin
Result.Add(inet_ntoa(pptr^^));
Inc(I);
end;
WSACleanup;
end;
 
不是获得本地的ip
如:在A局域网内有 ip:192.168.1.3
在B局域网内也有 IP:192.168.1.3
两个网通过代理服务器上网
用楼上的方法发到服务器上的ip就相同了,无法判断是把信息传到了A网,还是B网的IP
我想应该用读TCP/IP的头来解决
如何解决,请大家帮帮我
解决即发分,谢谢
 
如果你两台机的IP相同,在能直接通讯的网中是不可能的:)
在A的局域网中,会有个对外的IP,你的A是用这个IP出去的,同理,B也是用B局域网中的
对外IP出去。192.168.1.3这种本局域网内的IP是不能直接和外界通讯的。明白了吗:)
设了局域网的代理后IP包的流程就变成这样:A---A局域网内的对外主机---代理服务器
---访问目的地-(回应)----代理服务器----A局域网的对外直接通讯主机---A机。
 
同意楼上,就是代理的IP呀。
 
楼上的原理我也知道,关键是怎样实现通讯的原理呀
读Tcp的头?

有没有解决的方法呀
 
我服务器的Ip地址是192.168.0.11,怎么用了YB_unique老兄的程序后 得到的却是192.168.0.23
 
接受答案了.
 

Similar threads

后退
顶部