delphi路由器
本篇文章给大家谈谈delphi路由器,以及上海能上高速吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文内容目录一览:
- 1、delphi怎么处理跨路由器发送数据
- 2、如何用delphi 编写获取路由器的 动态ip地址
- 3、delphi 如何判断自己的宽带是内网还是外网?
- 4、delphi使用clientsocket指定端口号
- 5、delphi编程 如何实现远程控制家里的电脑
delphi怎么处理跨路由器发送数据
delphi处理跨路由器发送数据方法如下:
当数据到达传输层时,这个数据将会被分段传输以保证传输的速率,在分段时也会对每段数据编号以保证数据的有序性。然后在数据的头部加上“源端口” “目的端口” 的标识。
然后数据到达网络层。在此时数据包打上“源IP” “目的IP” 的标志。
然后将数据传输到数据链路层,把数据包打上“源MAC”“目的MAC”“帧类型”的标识。
最后数据到达物理层,把刚刚打包的数据包转化成比特流(比如:010101011??),通过光信号,或者电信号传输到小明的设备上。
至此,数据发送完成,这个过程又叫做封装。
小面就是小明接收信息了。
当数据传输到小明的设备上时,他设备上的网卡收到比特流,把比特流翻译成数据链路层能看懂的数据。
这时,数据链路层查看报头来确定协议,然后剥离数据链路层的报头,把数据传送到网络层。
网络层以同样的方式查看和剥离网络层报头。把数据传送到传输层。
传输层的报头中有对应的端口号,通过端口号交给相应的应用程序去处理(这一过程需要表示层、会话层对于数据的处理和翻译)。
然后“你好”就弹出在小明的设备上。
如何用delphi 编写获取路由器的 动态ip地址
如果是想知道当前内网的所有IP中哪一个是路由器用的(这样你就可以把网关设置为路由器IP后偷偷上网了),看路由有没有开snmp服务,如果有扫snmp服务端口。
如果想知道dhcp内网网段,sniffer广播包就可以了。
delphi 如何判断自己的宽带是内网还是外网?
通过和 外网或内网电脑的子网掩码和IP地址可以判断是内网还是外网
获得子网掩码:
unit UnitMask;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,registry,
StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
reg:TRegistry;
re:boolean;
device:string;
buf:pchar;
mask:string;
adapter:string;
begin
reg:=TRegistry.Create();
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
//open key
//win NT
//get bind device
re:=Reg.OpenKey('SYSTEM\CurrentControlSet\Services\Tcpip\Linkage',
false);
if re then
begin
getmem(buf,1024);
Reg.ReadBinaryData('Bind',buf^,1024);
device := strpas(buf);
freemem(buf);
end
else
begin
edit1.text:='Failed to get bind device';
reg.closekey();
reg.Free;
exit;
end;
reg.CloseKey;
//get adapter
adapter:=copy(device,2,length(device)-1);
showmessage(adapter);
adapter:=copy(adapter,POS('\',adapter)+1,length(adapter)-POS('\',adapter));
showmessage(adapter);
//query
re:=Reg.OpenKey('SYSTEM\CurrentControlSet\Services\'+
adapter+
'\Parameters\Tcpip',
false);
if re then
begin
getmem(buf,1024);
Reg.ReadBinaryData('SubnetMask',buf^,1024);
mask := strpas(buf);
freemem(buf);
end
else
mask:='Failed to get subnet mask';
finally
Reg.CloseKey;
Reg.Free;
end;
edit1.text:=device;
edit2.text:=mask;
end;
end.
——————————————————————————————————————————————————————————————————————
获得IP地址:
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 Exit;
pPtr := PaPInAddr(phe^.h_addr_list);
I := 0;
while pPtr^[I] nil do
begin
Result.Add(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines := GetIps;
end;
delphi使用clientsocket指定端口号
机器IP是192.168.1.2,必须用1080端口去连接服务器192.168.1.1的80端口来存取数据。
"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。
例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11插口也属于物理端口的范畴。
delphi编程 如何实现远程控制家里的电脑
如果电脑是关机的,那么试图通过互联网开机,对于动态IP来说无解。如果电脑是开机状态,那么途径有两个:(一)需要在互联网上有一个服务程序,互联网任意电脑和家里电建立通信即可,比如QQ聊天。(二)需要在家里电脑运行类似花生壳的东东,互联网任意电脑远程访问家里电脑,比如你自己写一个侦听程序驻留在家里电脑。两个途径的本质是相同的,内网动态IP只能主动访问外网,而外网只能被动建立连接。比如,你不登陆QQ就收不到别人的留言。
delphi路由器的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于上海能上高速吗、delphi路由器的信息别忘了在本站进行查找喔。