# Native Code > برنامه نویسی در Delphi > توسعه نرم افزارهای تحت شبکه >  ساخت Virtual Serve در مودم adsl

## h_mohamadi

سلام بر دوستان و اساتید گرامی 
من می خواهم یک برنامه ای با دلفی بنویسم که در آن کاربر با وارد کردن User و pas  مودم adsl بتوانم از طریق برنامه ام تنظیمات  port *forward* را انجام دهم.
نمی دانم باید از چه کامپوننتی و یا دستوری به مودم کانکت شوم.خواهش می کنم  من را راهنمایی بفرمائید.با تشکر فراوان از صبر و حوصله شما اساتید

----------


## h_mohamadi

دوستان خواهش مي کنم من را راهنمايي بفرمائيد

----------


## BORHAN TEC

سلام  :قلب: 
برای اینکه بتوانید دستوراتی را به مودم ADSL بفرستید و آن را کنترل کنید می توانید از Telnet استفاده کنید. من برنامه کوچکی را به عنوان نمونه برای شما ساخته ام که می توانید از آن استفاده کنید. اساس این برنامه کنترل TIdTelnet از سری کامپوننتهای Indy میباشد.  :چشمک: 
به عنوان نمونه می توانید دستورات زیر را به ترتیب با استفاده از این برنامه به مودم بفرستید و نتیجه را مشاهده کنید:
admin
admin
admin
reboot

البته اگر یوزر و پسورد مودم شما فرق می کند می توانید آن را در دستورات بالا لحاظ کنید. اما به هر حال در سیستم من با اجرای دستورات بالا نتایج شکل زیر حاصل شد ولی شما هر دستور دیگری را میتوانید با استفاده از این برنامه به مودم بفرستید: :لبخند گشاده!: 

09-03-2012 01-53-52 ب.png

در زیر هم کد این برنامه را ضمیمه کرده ام. اگر هم باگ داره خودتون رفعش کنید، چون زیاد وقت نداشتم بهتر درستش کنم. :افسرده: 
موفق باشید... :لبخند:

----------


## h_mohamadi

جناب آقاي شاهين عشايري خيلي ممنونم

----------


## h_mohamadi

کسي دستورساخت Virtual Serve در مودم adsl را نمي داند؟؟؟
من به آن نياز دارم

----------


## h_mohamadi

دوستان هم اکنون نيازمند ياري شما هستم؟؟
با سپاس

----------


## gbg

سلام
سوالت خیلی گنگ هستش
می خوای دقیقا چه کاری انجام بدی؟

----------


## h_mohamadi

> سلام
> سوالت خیلی گنگ هستش
> می خوای دقیقا چه کاری انجام بدی؟


 مي خواهم دد مودم asdsl در قسمت nat يک ip اضافه کنم؟؟؟

----------


## h_mohamadi

دوستان خواهش مي کنم راهنمايي بفرمائيد

----------


## BORHAN TEC

سلام :قلب: 
مدتیه که خیلی سرم شلوغه و اونطور که باید و شاید نتونستم همکاران و دوستانم رو خوشحال کنم. ولی این وسط شما یک استثنا هستید!  :چشمک: 

من فکر می کنم که دستورات مربوط به مودم های با مدل های مختلف یکسان نباشه و از اونجایی که من هم فقط یک نوع مودم دارم و اون هم مدلش D-Link DSL-2640U هست دستوری پیدا نکردم که از طریق Telnet بتونم یک پورت اضافه کنم و به جای استفاده از Telnet یک راه دیگه کشف کردم که هر کاری که بخوای رو میتونی با استفاده از اون انجام بدی، یعنی هر قابلیتی که مودمت پشتیبانی می کنه. این هم عکس مربوط به برنامه ای که ساخته ام به همراه توضیحات که بر روی عکس درج شده است.
Untitled-1.png
توجه داشته باش که در اون قسمتی که در عکس بالا با شماره 4 مشخص شده هر دستور مشابه دیگه ای رو میتونی وارد کنی(چشم بسته غیب گفتما)!!!
این هم از کد برنامه! ولی اگر باگی، چیزی داشت خودت درستش کن!  :متعجب: 
موفق باشی... :لبخند گشاده!:

----------


## h_mohamadi

کسي از دوستان راهنمايي نمي کند؟؟

----------


## h_mohamadi

کمک مي خواهم 
من در لينک زير هم اين سئوال را پرسيده ام و يکي از دوستان جواب داده ولي متوجه نشدم
مي شود شما راهنمايي بفرمائيد
http://www.board4allcz.eu/showthread.php?t=518997

----------


## mohsen24000

اینجا کاری رو که شما مد نظر دارید رو با زبان سی انجام داده، ببین شاید بشه ازش استفاده کرد!
http://www.codeproject.com/Articles/...wardings-and-N

----------


## h_mohamadi

> اینجا کاری رو که شما مد نظر دارید رو با زبان سی انجام داده، ببین شاید بشه ازش استفاده کرد!
> http://www.codeproject.com/Articles/...wardings-and-N


ممنونم ولي به c مسلط نيستم مي شود اساتيد دستورات دلفي آن را بگويند چي مي شود؟؟؟
با تشکر فراوان

----------


## BORHAN TEC

سلام
فکر کنم با مطالعه دقیق صفحه زیر این مشکل حل خواهد شد:
https://forums.embarcadero.com/messa...ssageID=173414
اگر هم نمی توانید با روش های غیر معمول به اینترنت متصل شوید می توانید از ضمیمه این پست استفاده کنید.
موفق باشید...

----------


## FastCode

گوگل کنید
NAT-PMP
UPNP

----------


## h_mohamadi

> سلام
> فکر کنم با مطالعه دقیق صفحه زیر این مشکل حل خواهد شد:
> https://forums.embarcadero.com/messa...ssageID=173414
> اگر هم نمی توانید با روش های غیر معمول به اینترنت متصل شوید می توانید از ضمیمه این پست استفاده کنید.
> موفق باشید...


جناب آقاي عشايري با سپاس
مي خواستم بدانم از چه کامپوننتي استفاده کرده است؟؟
آيا کار مي کند؟؟

----------


## BORHAN TEC

> مي خواستم بدانم از چه کامپوننتي استفاده کرده است؟؟


از کامپوننت خاصی استفاده نشده است، بلکه از امکانات خود سیستم عامل استفاده شده است.



> آيا کار مي کند؟؟


من با استفاده از کدهای مربوطه توانستم پورتی را معرفی کنم ولی این پورت را نتوانستم در مودم خودم مشاهده کنم ولی با لیست کردن پورتها با کدی که در فایل ضمیمه شده وجود دارد متوجه شدم که پورت اضافه شده است.

----------


## h_mohamadi

> از کامپوننت خاصی استفاده نشده است، بلکه از امکانات خود سیستم عامل استفاده شده است.
> 
> من با استفاده از کدهای مربوطه توانستم پورتی را معرفی کنم ولی این پورت را نتوانستم در مودم خودم مشاهده کنم ولی با لیست کردن پورتها با کدی که در فایل ضمیمه شده وجود دارد متوجه شدم که پورت اضافه شده است.


مي شود برنامه اي را که نوشته ايد را برايم بفرستيد؟؟
چون من هرچي از دستورات استفاده مي کنم پروژه اجرا نمي شود پيغام مي دهد
با سپاس

----------


## h_mohamadi

دوستان کمک کنيد؟؟؟

----------


## BORHAN TEC

پروژه زیر با Delphi XE2 کامپایل و در Windows 7 تست شده است و به درستی کار کرده است

----------


## h_mohamadi

> پروژه زیر با Delphi XE2 کامپایل و در Windows 7 تست شده است و به درستی کار کرده است



ممنونم من پروژه را با دلفي 7 باز کردم ولي پيغام مي دهد که Vcl.Forms.dcu يافت نشده است
 خواهش مي کنم کمک بفرمائيد

----------


## mohsen24000

عبارت .vcl رو حذف کنید...

----------


## h_mohamadi

> عبارت .vcl رو حذف کنید...


عبارت را حذف کردم و قسمت uses هم از 
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, activeX, oleAuto, Vcl.StdCtrls,
  Classes, Controls, StdCtrls;

به 
Windows, Messages, SysUtils, Variants,
  Classes, Graphics,
  Controls, Forms, Dialogs, activeX, oleAuto, StdCtrls,
  Classes, Controls, StdCtrls;


تبديل کردم ولي باز پيغام کي دهد
File not found: 'Ole2.dcu'

----------


## h_mohamadi

دوستان من کارهايي که فرموده ايد را انجام داده ام ولي پيغام acses violashan مي دهد
خواهش مي کنم راهنمايي بفرمائيد

----------


## BORHAN TEC

از چه ویندوزی استفاده می کنید؟
چون من دقیقاً از فایل exe ای که قرار دادین در ویندوز 7 جواب گرفتم.

----------


## h_mohamadi

> از چه ویندوزی استفاده می کنید؟
> چون من دقیقاً از فایل exe ای که قرار دادین در ویندوز 7 جواب گرفتم.


از XP استفاده مي کنم ولي در ويندوز 7 هم تست کردم
پيغام هاي زير را مي دهد


خواهش مي کنم کمکم کنيد

----------


## BORHAN TEC

مثل اینکه: آب در کوزه و ما گرد جهان می گردیم!
با کمی تحقیق متوجه شدم که به طور پیشفرض در دلفی کامپوننتهایی برای اینکار وجود دارد که نام آنها عبارتند از IdMappedPortTCP و IdMappedPortUDP که در سربرگ Indy Servers قرار دارند و طبق مستندات آن احتمالاً همان چیزی است که لازم دارید:
http://www.kumanov.com/docs/prog/indy/007533.html

----------


## h_mohamadi

> مثل اینکه: آب در کوزه و ما گرد جهان می گردیم!
> با کمی تحقیق متوجه شدم که به طور پیشفرض در دلفی کامپوننتهایی برای اینکار وجود دارد که نام آنها عبارتند از IdMappedPortTCP و IdMappedPortUDP که در سربرگ Indy Servers قرار دارند و طبق مستندات آن احتمالاً همان چیزی است که لازم دارید:
> http://www.kumanov.com/docs/prog/indy/007533.html


ممنونم ولي من با indy و دستورات آن هيچ آشنايي ندارم؟؟
مي شود راهنمايي بفرمائيد

----------


## BORHAN TEC

سلام
آخه دیگه چه چیزی رو می خواهید بدونید؟؟؟ :متعجب: 
همانطور که قبلاً هم گفتم هیچ راه حل ثابتی وجود ندارد که در مورد همه مودم ها جواب دهد و اون نرم افزاری هم که معرفی کردید از یک پایگاه داده برای اینکار استفاده می کند. سازندگان این نرم افزار مشخصات و ویژگی های  مدل های مختلف مودم را جمع آوری کرده اند و در دیتابیس برنامه شان قرار داده اند و برای Port Forwarding از اطلاعات موجود در آن بانک استفاده می کنند. انجام این کار توسط آن ها شاید سالها زمان برده است!!! حال شما در اینجا برای چه چیزی کمک می خواهید؟ من کاملاً مطمئن هستم که تنها راه حل این مسئله همین است که گفتم چون برای حل این مسئله خیلی تحقیق کردم و کل اینترنت رو زیر و رو کردم. پس تنها راه ممکن برای حل مسئله از این طریق متاسفانه فقط پاک کردن صورت مسئله است!!!  :متفکر:

----------


## h_mohamadi

سلام
مي خواستم بدانم حالا که برنامه Simple Port Forwarding است آيا من مي توانم برنامه اي بنويسم که برنامه خودم داخلش اطلاعات باشد و از طريق برنامه خودم آن برنامه را باز کنم و برنامه من واسط بين کاربر و برنامه Simple Port Forwarding باشد؟؟؟
کاربر در برنامه من اطلاعات را وارد مي کند
1.PNG

برنامه من با زدن دکمه انجام تنظيمات فايل برنامه Simple Port Forwarding را در پشت خودش باز نموده و اطلاعاتي که به صورت کادر قرمز درون برنامه Simple Port Forwarding نشان داده ام را از برنامه حودم درون آن ريخته و دکمه UPDATE ROTER را بزنم و برنامه Simple Port Forwarding کار آپديت را در مودم انجام مي دهد
2.PNG
ممنون مي شوم اگر اين کار ممکن است دوستان راهنمايي کنند

----------


## Felony

بارها در این مورد صحبت شده ، اگر اون برنامه یک Windows Application هست که توبع FindWindow , FindWindowEX, SendMessage رو جستجو کنید ، اگر هم Web Application هست ، پر کرد فرم های اینترنتی را جستجو کنید .

دلیلی نداره هر با بیاین اینجا و یه پست بزنین تا تاپیک بالا بیاد و توش خواهش کنین .

موفق باشید .

----------

