1

(1 відповідей, залишених у C#, .NET)

На даний момент комп підключений через фай-фай(через виту пару такої проблеми немає).
Відправляю пакет на бродкаст адрес (255.255.255.255) но він чомусь приходить з адреса 169.254.123.1 хоча компу наданий адрес 192.168.10.17. Якщо змінити бродкаст адрес на 192.168.10.255 пакет приходить з мого адреса.
Як зробити щоб бродкаст розсилка йшла з моєї адрес, і що то може бути за адреса 169.254.123.1(я всі лишні адаптери вімкнув)?

//процедурка відправки як приклад
byte[] bSend = { 1, 2, 3 };
int lenn = bSend.Length;;
UdpClient udpClient2;
udpClient2 = new UdpClient();
IPAddress address = IPAddress.Broadcast; //255.255.255.255
try {
    udpClient2.Connect(address, remotePort);
    udpClient2.Send(bSend, lenn);
}
catch (Exception )
{ }
udpClient2.Close();

2

(16 відповідей, залишених у C++)

HetmanNet написав:

NAT

Думав що NAT не бере участі в впорядкуванні внутрішніх мереж, а вже підключається при виході на зовні...

3

(16 відповідей, залишених у C++)

І так, дещо пробував. Все троха виявилось простіше з написанням коду.
На гідхабі є проєктhttps://github.com/DaemonArcfour/PacketWorks за допомогою якого можна згенерувати UDP пакет з любими адресами. Провіряв на Він7 з встановленим WinPecap. Судячи з показів сніфера пакети дійсно генеруються і надсилаються з любими введеними даними. Це працює тільки в мережі з адресом класу "С". Топто до адресата доходить тільки зміна послідйого байта адреса відправника. Адрес відправника класу "B" вже адресат не отримує. Хм.. і хто в цйому винен? Роутер? Роутер в мене тплінк з прошивкою openvrt.
Думаю якщо дальше йти -більше граблів...

4

(16 відповідей, залишених у C++)

Droid 77 написав:

Все дозволено, і все можливо.
Всі подальші дії залежать лише від мети.

Хм... дякую за підтримку.
Може є якийсь практичний досвід по цьому питанню?
на linux ніколи нічого не писав тому маю надію що прога буде працювати в linux через wine...

5

(16 відповідей, залишених у C++)

Betterthanyou написав:

щодо провайдерів, багато провайдерів використовують NAT "перетворення мережевих адрес" - щоб перетворити приватні локальні адреси в публічні адреси перед надсиланням пакетів в Інтернет. Тому навіть якщо ви відправите пакет з фейковою вихідною адресою, провайдер може замінити її на свою валідну публічну адресу, яка відповідає вашому підключенню до Інтернету.

От цього я і боявся. Мені не вдасться передати внутрішній адрес як зовнішній... Но якось це роблять, питання як.
І думаю для таких експерементів треба переходити на лінукс...

6

(16 відповідей, залишених у C++)

Там тільки загальна інформація "що таке є, хто використовує і як захиститися".
Мені би практиків послухати(почитати)...

7

(16 відповідей, залишених у C++)

Таке питання до знаючих. Чи можна надіслати пакет в інтернет з будьякою вихідною адресою? Ну наприклад надіслати UDP пакет від гугла... Я так розумію що він 7 для цйого не підійде... можливо він XP.
Дещо пробував, Зформрваний пакет в Він 7 (нормальний) надсилається, як тільки я міняю IP:

src.sin_addr.s_addr = inet_addr("192.168.1.100");

Пакет не відправляється... Чомусь...
І навіть якщо пакет піде, як його випустить провайдер? Він не замінить мій IP на свій?
Не дуже розумію це тому прошу троха розяснити.
Дякую.

8

(5 відповідей, залишених у C++)

Torbins написав:

...то можна зробити датамодуль, і накидати потрібних компонент туди.

Це напевні те що мені потрібно. Не знав що там таке є. Буду дома - попробую.
Хоча цікаво чому компоненти закриті в клас не спрацювали... пробував оголошувати і без класу:

#include "IdComponent.hpp"
#include "IdHTTP.hpp"
#include "IdIOHandler.hpp"
#include "IdIOHandlerSocket.hpp"
#include "IdSSLOpenSSL.hpp"
#include "IdTCPClient.hpp"
#include "IdTCPConnection.hpp"

TIdHTTP *IdHTTP1;
TIdSSLIOHandlerSocket *IdSSLIOHandlerSocket1;

Програма компилюється но не працює. Но десь читав що компонент мусить бути привязаний до класу...

koala написав:

Ну і ви намагалися запустити ваш 300кБ .exe на компі без встановленого bcb5?

Torbins написав:

Скоріше за все буде нормально працювати. В старих версіях був такий розмір файлу з прилінкованими бібліотеками.

Так. Це автономний файл з вмонтованими бібліотеками. Після пакера (наприклад upx) взагалі 150клб займає. Правда не вартує пакувати ато після пакера вірустотал там вже віруси бачить(проте файл чистий) :)
Просто в свій час колись спектрумами бавились і кожен байт був на рахунку. Но це був асамблер, тут на асамблері далеко не заїдиш ще і голову зламати можна... Но щоб програма Hellow world займала 4 метри це для мене занато... хоча я розумію що оболонка xe7 не для того робилася...

9

(5 відповідей, залишених у C++)

Так старий но мені він подобається навіть за те що вихідний файл получається не 4Мб(наприклад XE7) а всйого 300клб.
Та і вистачає мені його...

Змінив назву класа тепер получаю:
[Linker Error] Unresolved external '_Comp1' referenced from D:\C\UNIT1.OBJ

Потрібно створити програму без вікна якаб працювала в фоні і робила запрос на вебсторінку. Хочу попробувати це зробити в консолі з компонентами Інді IdHTTP і IdSSLOpenSSL. В Aplication це працює.  Можна булоб і скрити форму но хочеться в консолі.

Створив консольний проект добавив хедер і в ньому написав:

#include "IdComponent.hpp"
#include "IdHTTP.hpp"
#include "IdIOHandler.hpp"
#include "IdIOHandlerSocket.hpp"
#include "IdSSLOpenSSL.hpp"
#include "IdTCPClient.hpp"
#include "IdTCPConnection.hpp"
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TComp
{

private:    // User declarations

public:        // User declarations
        TIdHTTP *IdHTTP1;
        TIdSSLIOHandlerSocket *IdSSLIOHandlerSocket1;

//        __fastcall TComp(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TComp *Comp;
//---------------------------------------------------------------------------
#endif

Тепер у вікні cpp бачу компоненти(підказки) но коли звертаюся до них (наприклад Comp->IdHTTP1->RedirectMaximum = 1;)
При компиляції получаю:
[C++ Error] Unit1.cpp(28): E2015 Ambiguity between 'Comp' and 'System::Comp'

Як мені це зробити?

11

(4 відповідей, залишених у C++)

ReAl написав:

Шукайте у своїй бібліотеці функцію SetBreak чи якусь подібну. Далі вже думайте, як між, умовно, SetBreak(true)і SetBreak(false) витримати ті 150 мс.

Це те що треба.
Я вже начитався що ком-порт зроблений апаратно і такого робити не годен :)
Подякував.

12

(4 відповідей, залишених у C++)

Може можна якось керувати ТХ сигналом?
Потрібно його занулити на 150мс.
При швидкості 110 бод(нище поставити не можу) якщо направити в порт 0х00 занулення  = ~30мс. Це мені мало.
Може є якісь нестандартні можливості через асамблер...

Пишу в BCB5, користуюсь CPortLib компонентами.

До якої реально частоти працює цей свисток? Чогось не дуже віриться що до 1.7ггц.
Після 1ггц починають лізти різні гармоніки. ЖПС сигналів теж не видно.
...хотів спробувати прийняти метео-фото(HRPT)(APT вже не цікаве) з частоти 1.7ггц но бачу щось він там не працює.
В цілому штука гарна, буду пробувати робити полосові діапазонні фільтра.

Що до програми,.. для чого вона може знадобитися не придумав. Записати ділянку смуги може SDRSharp. Ширину смуги там теж міняти можна...
А рав-дані sdr.dat не сумісні з SDRSharp ...наприклад якщо б хотілося прослухати записану смугу.