c # Ip из websocket URI [дубликат]

Приложение может использовать API отражения Java для доступа и обновления полей и выполнять методы, которые запрещены нормальными правилами доступа / видимости Java. С некоторой изобретательностью это достаточно для:

  • доступа к информации, которая должна быть скрыта,
  • подорвать изолированную программную среду Java, чтобы вы могли вмешиваться в другие вещи запуск в JVM, доступ к файлам на локальном компьютере и т. д.

При определенных обстоятельствах это может даже позволить ввести вредоносный код.

90
задан John Saunders 8 January 2013 в 12:42
поделиться

8 ответов

Вы можете использовать объект Request или Uri для получения узла url.

Использование Request.Url

string host = Request.Url.Host;

Использование Uri

Uri myUri = new Uri("http://www.contoso.com:8080/");   
string host = myUri.Host;  // host is "www.contoso.com"
188
ответ дан Luke Girvin 15 August 2018 в 19:04
поделиться
  • 1
    Привет, я хотел использовать Request.Url, но Visual Studio все еще возвращает Не удается разрешить символ «Запрос». Я не знаю, что не так. Я использую Visual Studio 2010 и Net Framework 4.0. Может ли кто-нибудь объяснить симптом? благодаря – Michal 26 January 2016 в 13:21
  • 2
    Вам необходимо иметь доступ к объекту Request, который у вас есть на веб-страницах / службах, но не по умолчанию. Вы можете использовать класс Uri, если у вас нет объекта Request – Adil 26 January 2016 в 13:27
  • 3
    .ToLower() является избыточным. Uri делает это автоматически. – beruic 24 May 2016 в 15:44

Вы должны построить свою строку как объект URI , а свойство Authority возвращает то, что вам нужно.

0
ответ дан Can Guney Aksakalli 15 August 2018 в 19:04
поделиться

Лучший способ и правильный способ сделать это - использовать поле Uri.Authority

Загружать и использовать Uri так:

Uri NewUri;

if (Uri.TryCreate([string with your Url], UriKind.Absolute, out NewUri))
{
     Console.Writeline(NewUri.Authority);
}

Input : http://support.domain.com/default.aspx?id=12345
Output : support.domain.com

Input : http://www.domain.com/default.aspx?id=12345
output : www.domain.com

Input : http://localhost/default.aspx?id=12345
Output : localhost

Если вы хотите манипулировать URL-адресом , использование объекта Uri - хороший способ сделать это. [Д0] https://msdn.microsoft.com/en-us/library/system.uri (v = vs.110) .aspx

3
ответ дан Guillaume Beauvois 15 August 2018 в 19:04
поделиться

Используйте класс Uri и используйте свойство Host

Uri url = new Uri(@"http://support.domain.com/default.aspx?id=12345");
Console.WriteLine(url.Host);
25
ответ дан Habib 15 August 2018 в 19:04
поделиться

Попробуйте это

Console.WriteLine(GetDomain.GetDomainFromUrl("http://support.domain.com/default.aspx?id=12345"));

Он выведет support.domain.com

Или попробуйте

Uri.GetLeftPart( UriPartial.Authority )
0
ответ дан mystycs 15 August 2018 в 19:04
поделиться

попробуйте выполнить инструкцию

 Uri myuri = new Uri(System.Web.HttpContext.Current.Request.Url.AbsoluteUri);
 string pathQuery = myuri.PathAndQuery;
 string hostName = myuri.ToString().Replace(pathQuery , "");

Пример1

 Input : http://localhost:4366/Default.aspx?id=notlogin
 Ouput : http://localhost:4366

Пример2

 Input : http://support.domain.com/default.aspx?id=12345
 Output: support.domain.com
3
ответ дан SiwachGaurav 15 August 2018 в 19:04
поделиться
  • 1
    не работает, если myuri.PathAndQuery есть & quot; / & quot; он просто заменяет & quot; / & quot; с "& quot; – Patrick from NDepend team 8 December 2017 в 07:51

Попробуйте это:

Uri.GetLeftPart( UriPartial.Authority )

Определяет части URI для метода Uri.GetLeftPart.


http://www.contoso.com/index.htm?date=today -> http://www.contoso.com

http://www.contoso.com/index.htm#main -> http://www.contoso.com

nntp: //news.contoso.com/123456@contoso.com -> nntp: //news.contoso.com

файл: //server/filename.ext -> file: // server

Uri uriAddress = new Uri("http://www.contoso.com/index.htm#search");
Console.WriteLine("The path of this Uri is {0}", uriAddress.GetLeftPart(UriPartial.Authority));

Demo

29
ответ дан Soner Gönül 15 August 2018 в 19:04
поделиться

WWW - это псевдоним, поэтому вам не нужен он, если вы хотите домен. Вот моя функция litllte для получения реального домена из строки

private string GetDomain(string url)
    {
        string[] split = url.Split('.');
        if (split.Length > 2)
            return split[split.Length - 2] + "." + split[split.Length - 1];
        else
            return url;

    }
-2
ответ дан Xavius Pupuss 15 August 2018 в 19:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: